From 3f9e43e66879512d8fb761ffcb7078b109aa9cfb Mon Sep 17 00:00:00 2001 From: securesubmit-buildmaster Date: Tue, 12 Apr 2022 08:31:49 -0400 Subject: [PATCH] OctopusDeploy release: 3.0.4 --- CHANGELOG.md | 5 + composer.json | 2 +- composer.lock | 4161 ++++------------- metadata.xml | 2 +- .../Builders/TerminalAuthBuilder.php | 12 +- src/Terminals/Builders/TerminalBuilder.php | 26 + src/Terminals/ConnectionContainer.php | 1 + src/Terminals/Enums/DeviceType.php | 1 + .../UPA/Builders/UpaTerminalManageBuilder.php | 2 +- .../UPA/Entities/Enums/UpaMessageId.php | 4 + src/Terminals/UPA/Entities/UpaResponse.php | 2 + .../UPA/Responses/UpaReportHandler.php | 30 + .../UPA/SubGroups/RequestParamFields.php | 18 +- .../SubGroups/RequestTransactionFields.php | 54 +- src/Terminals/UPA/UpaController.php | 35 +- src/Terminals/UPA/UpaInterface.php | 24 +- .../Gateways/Terminals/UPA/UpaBatchTests.php | 21 +- .../Gateways/Terminals/UPA/UpaCreditTests.php | 155 +- .../UPA/vrf/UpaVerificationTests.php | 599 ++- 19 files changed, 1738 insertions(+), 3416 deletions(-) create mode 100644 src/Terminals/UPA/Responses/UpaReportHandler.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 9422bd99..8e87c451 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ ## Latest version #### Enhancements: +- UPA devices: add support for batch summary report, batch detail report, and open tab details report +- UPA devices: various modifications to account for latest UPA version's changes + +## v3.0.3 (03/21/2022) +#### Enhancements: - add "MOBILE_SDK" source in the 3DS2 flow initiate step (GP-API) - Adjust a CP Sale (GP-API) - Search [POST] for a Payment Method (GP-API) diff --git a/composer.json b/composer.json index c39787b1..2d24e427 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ }, "require-dev": { "phpunit/phpunit": "~5.0", - "brianium/paratest": "dev-master", + "brianium/paratest": "0.15.0", "squizlabs/php_codesniffer": "2.*", "phpstan/phpstan-shim": "^0.8.4" }, diff --git a/composer.lock b/composer.lock index 02600656..8739e678 100644 --- a/composer.lock +++ b/composer.lock @@ -1,10 +1,10 @@ { "_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#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "5400d26ad80e42feba9aa303ed2a3d0c", + "content-hash": "568c6d7917a47e078d15fafa7d678341", "packages": [], "packages-dev": [ { @@ -50,16 +50,16 @@ }, { "name": "brianium/paratest", - "version": "dev-master", + "version": "0.15.0", "source": { "type": "git", - "url": "https://github.com/brianium/paratest.git", - "reference": "b4c5be606a03af51c313c12018a5e80d0ab9b94b" + "url": "https://github.com/paratestphp/paratest.git", + "reference": "13af4ef6631a2638498de9813bbe0f6493ba84ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brianium/paratest/zipball/b4c5be606a03af51c313c12018a5e80d0ab9b94b", - "reference": "b4c5be606a03af51c313c12018a5e80d0ab9b94b", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/13af4ef6631a2638498de9813bbe0f6493ba84ad", + "reference": "13af4ef6631a2638498de9813bbe0f6493ba84ad", "shasum": "" }, "require": { @@ -105,47 +105,37 @@ "phpunit", "testing" ], - "time": "2017-06-07T20:20:03+00:00" + "time": "2017-06-13T19:50:32+00:00" }, { - "name": "cilex/cilex", - "version": "1.1.0", + "name": "composer/semver", + "version": "1.7.2", "source": { "type": "git", - "url": "https://github.com/Cilex/Cilex.git", - "reference": "7acd965a609a56d0345e8b6071c261fbdb926cb5" + "url": "https://github.com/composer/semver.git", + "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Cilex/Cilex/zipball/7acd965a609a56d0345e8b6071c261fbdb926cb5", - "reference": "7acd965a609a56d0345e8b6071c261fbdb926cb5", + "url": "https://api.github.com/repos/composer/semver/zipball/647490bbcaf7fc4891c58f47b825eb99d19c377a", + "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a", "shasum": "" }, "require": { - "cilex/console-service-provider": "1.*", - "php": ">=5.3.3", - "pimple/pimple": "~1.0", - "symfony/finder": "~2.1", - "symfony/process": "~2.1" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "3.7.*", - "symfony/validator": "~2.1" - }, - "suggest": { - "monolog/monolog": ">=1.0.0", - "symfony/validator": ">=1.0.0", - "symfony/yaml": ">=1.0.0" + "phpunit/phpunit": "^4.5 || ^5.0.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.x-dev" } }, "autoload": { - "psr-0": { - "Cilex": "src/" + "psr-4": { + "Composer\\Semver\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -154,50 +144,61 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" } ], - "description": "The PHP micro-framework for Command line tools based on the Symfony2 Components", - "homepage": "http://cilex.github.com", + "description": "Semver library that offers utilities, version constraint parsing and validation.", "keywords": [ - "cli", - "microframework" + "semantic", + "semver", + "validation", + "versioning" ], - "time": "2014-03-29T14:03:13+00:00" + "time": "2020-12-03T15:47:16+00:00" }, { - "name": "cilex/console-service-provider", - "version": "1.0.0", + "name": "doctrine/instantiator", + "version": "1.4.1", "source": { "type": "git", - "url": "https://github.com/Cilex/console-service-provider.git", - "reference": "25ee3d1875243d38e1a3448ff94bdf944f70d24e" + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Cilex/console-service-provider/zipball/25ee3d1875243d38e1a3448ff94bdf944f70d24e", - "reference": "25ee3d1875243d38e1a3448ff94bdf944f70d24e", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", "shasum": "" }, "require": { - "php": ">=5.3.3", - "pimple/pimple": "1.*@dev", - "symfony/console": "~2.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "cilex/cilex": "1.*@dev", - "silex/silex": "1.*@dev" + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { - "psr-0": { - "Cilex\\Provider\\Console": "src" + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" } }, "notification-url": "https://packagist.org/downloads/", @@ -206,149 +207,151 @@ ], "authors": [ { - "name": "Beau Simensen", - "email": "beau@dflydev.com", - "homepage": "http://beausimensen.com" - }, - { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" } ], - "description": "Console Service Provider", + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ - "cilex", - "console", - "pimple", - "service-provider", - "silex" + "constructor", + "instantiate" ], - "time": "2012-12-19T10:50:58+00:00" + "time": "2022-03-03T08:28:38+00:00" }, { - "name": "composer/semver", - "version": "1.4.2", + "name": "myclabs/deep-copy", + "version": "1.11.0", "source": { "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/c7cb9a2095a074d131b65a8a0cd294479d785573", - "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0" + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5", - "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], "psr-4": { - "Composer\\Semver\\": "src" + "DeepCopy\\": "src/DeepCopy/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", + "description": "Create deep copies (clones) of your objects", "keywords": [ - "semantic", - "semver", - "validation", - "versioning" + "clone", + "copy", + "duplicate", + "object", + "object graph" ], - "time": "2016-08-30T16:08:34+00:00" + "time": "2022-03-03T13:19:32+00:00" }, { - "name": "container-interop/container-interop", - "version": "1.2.0", + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", "source": { "type": "git", - "url": "https://github.com/container-interop/container-interop.git", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "psr/container": "^1.0" + "php": "^7.2 || ^8.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, "autoload": { "psr-4": { - "Interop\\Container\\": "src/Interop/Container/" + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", - "homepage": "https://github.com/container-interop/container-interop", - "time": "2017-02-14T19:40:03+00:00" + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2020-06-27T09:03:43+00:00" }, { - "name": "doctrine/annotations", - "version": "v1.4.0", + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", "source": { "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", "shasum": "" }, "require": { - "doctrine/lexer": "1.*", - "php": "^5.6 || ^7.0" + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" }, "require-dev": { - "doctrine/cache": "1.*", - "phpunit/phpunit": "^5.7" + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "5.x-dev" } }, "autoload": { "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -357,68 +360,48 @@ ], "authors": [ { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" }, { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], - "description": "Docblock Annotations Parser", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "time": "2017-02-24T16:22:25+00:00" + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2021-10-19T17:43:47+00:00" }, { - "name": "doctrine/instantiator", - "version": "1.0.5", + "name": "phpdocumentor/type-resolver", + "version": "1.6.1", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "77a32518733312af16a44300404e945338981de3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", + "reference": "77a32518733312af16a44300404e945338981de3", "shasum": "" }, "require": { - "php": ">=5.3,<8.0-DEV" + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" + "ext-tokenizer": "*", + "psalm/phar": "^4.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -427,45 +410,47 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2015-06-14T21:17:01+00:00" + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2022-03-15T21:29:03+00:00" }, { - "name": "doctrine/lexer", - "version": "v1.0.1", + "name": "phpspec/prophecy", + "version": "v1.10.3", "source": { "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" + "url": "https://github.com/phpspec/prophecy.git", + "reference": "451c3cd1418cf640de218914901e51b064abb093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", "shasum": "" }, "require": { - "php": ">=5.3.2" + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5 || ^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.10.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" + "psr-4": { + "Prophecy\\": "src/Prophecy" } }, "notification-url": "https://packagist.org/downloads/", @@ -474,254 +459,234 @@ ], "authors": [ { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" }, { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" } ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", "keywords": [ - "lexer", - "parser" + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" ], - "time": "2014-09-09T13:34:57+00:00" + "time": "2020-03-05T15:02:03+00:00" }, { - "name": "erusev/parsedown", - "version": "1.6.2", + "name": "phpstan/phpstan-shim", + "version": "0.8.5", "source": { "type": "git", - "url": "https://github.com/erusev/parsedown.git", - "reference": "1bf24f7334fe16c88bf9d467863309ceaf285b01" + "url": "https://github.com/phpstan/phpstan-shim.git", + "reference": "0b174a61fd99dea61f15ea6bd3bc424389f273d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/1bf24f7334fe16c88bf9d467863309ceaf285b01", - "reference": "1bf24f7334fe16c88bf9d467863309ceaf285b01", + "url": "https://api.github.com/repos/phpstan/phpstan-shim/zipball/0b174a61fd99dea61f15ea6bd3bc424389f273d4", + "reference": "0b174a61fd99dea61f15ea6bd3bc424389f273d4", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "~7.0" + }, + "provide": { + "phpstan/phpstan": "0.8" }, + "bin": [ + "phpstan.phar" + ], "type": "library", - "autoload": { - "psr-0": { - "Parsedown": "" + "extra": { + "branch-alias": { + "dev-master": "0.8-dev" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "Parser for Markdown.", - "homepage": "http://parsedown.org", - "keywords": [ - "markdown", - "parser" - ], - "time": "2017-03-29T16:04:15+00:00" + "description": "PHPStan Phar distribution", + "abandoned": "phpstan/phpstan", + "time": "2017-10-24T04:16:00+00:00" }, { - "name": "herrera-io/json", - "version": "1.0.3", + "name": "phpunit/php-code-coverage", + "version": "4.0.8", "source": { "type": "git", - "url": "https://github.com/kherge-php/json.git", - "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kherge-php/json/zipball/60c696c9370a1e5136816ca557c17f82a6fa83f1", - "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", "shasum": "" }, "require": { - "ext-json": "*", - "justinrainbow/json-schema": ">=1.0,<2.0-dev", - "php": ">=5.3.3", - "seld/jsonlint": ">=1.0,<2.0-dev" + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^5.6 || ^7.0", + "phpunit/php-file-iterator": "^1.3", + "phpunit/php-text-template": "^1.2", + "phpunit/php-token-stream": "^1.4.2 || ^2.0", + "sebastian/code-unit-reverse-lookup": "^1.0", + "sebastian/environment": "^1.3.2 || ^2.0", + "sebastian/version": "^1.0 || ^2.0" }, "require-dev": { - "herrera-io/phpunit-test-case": "1.*", - "mikey179/vfsstream": "1.1.0", - "phpunit/phpunit": "3.7.*" + "ext-xdebug": "^2.1.4", + "phpunit/phpunit": "^5.7" + }, + "suggest": { + "ext-xdebug": "^2.5.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "4.0.x-dev" } }, "autoload": { - "files": [ - "src/lib/json_version.php" - ], - "psr-0": { - "Herrera\\Json": "src/lib" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Kevin Herrera", - "email": "kevin@herrera.io", - "homepage": "http://kevin.herrera.io" + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" } ], - "description": "A library for simplifying JSON linting and validation.", - "homepage": "http://herrera-io.github.com/php-json", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", "keywords": [ - "json", - "lint", - "schema", - "validate" + "coverage", + "testing", + "xunit" ], - "abandoned": "kherge/json", - "time": "2013-10-30T16:51:34+00:00" + "time": "2017-04-02T07:44:40+00:00" }, { - "name": "herrera-io/phar-update", - "version": "1.0.3", + "name": "phpunit/php-file-iterator", + "version": "1.4.5", "source": { "type": "git", - "url": "https://github.com/kherge-abandoned/php-phar-update.git", - "reference": "00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kherge-abandoned/php-phar-update/zipball/00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b", - "reference": "00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", "shasum": "" }, "require": { - "herrera-io/json": "1.*", - "kherge/version": "1.*", "php": ">=5.3.3" }, - "require-dev": { - "herrera-io/phpunit-test-case": "1.*", - "mikey179/vfsstream": "1.1.0", - "phpunit/phpunit": "3.7.*" - }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.4.x-dev" } }, "autoload": { - "files": [ - "src/lib/constants.php" - ], - "psr-0": { - "Herrera\\Phar\\Update": "src/lib" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Kevin Herrera", - "email": "kevin@herrera.io", - "homepage": "http://kevin.herrera.io" + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" } ], - "description": "A library for self-updating Phars.", - "homepage": "http://herrera-io.github.com/php-phar-update", + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", "keywords": [ - "phar", - "update" + "filesystem", + "iterator" ], - "abandoned": true, - "time": "2013-10-30T17:23:01+00:00" + "time": "2017-11-27T13:52:08+00:00" }, { - "name": "jms/metadata", - "version": "1.6.0", + "name": "phpunit/php-text-template", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/schmittjoh/metadata.git", - "reference": "6a06970a10e0a532fb52d3959547123b84a3b3ab" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/6a06970a10e0a532fb52d3959547123b84a3b3ab", - "reference": "6a06970a10e0a532fb52d3959547123b84a3b3ab", - "shasum": "" + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" }, "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "doctrine/cache": "~1.0", - "symfony/cache": "~3.1" + "php": ">=5.3.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5.x-dev" - } - }, "autoload": { - "psr-0": { - "Metadata\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "BSD-3-Clause" ], "authors": [ { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Class/method/property metadata management in PHP", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "annotations", - "metadata", - "xml", - "yaml" + "template" ], - "time": "2016-12-05T10:18:33+00:00" + "time": "2015-06-21T13:50:34+00:00" }, { - "name": "jms/parser-lib", - "version": "1.0.0", + "name": "phpunit/php-timer", + "version": "1.0.9", "source": { "type": "git", - "url": "https://github.com/schmittjoh/parser-lib.git", - "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/parser-lib/zipball/c509473bc1b4866415627af0e1c6cc8ac97fa51d", - "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", "shasum": "" }, "require": { - "phpoption/phpoption": ">=0.9,<2.0-dev" + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", "extra": { @@ -730,131 +695,139 @@ } }, "autoload": { - "psr-0": { - "JMS\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache2" + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } ], - "description": "A library for easily creating recursive-descent parsers.", - "time": "2012-11-18T18:08:43+00:00" + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2017-02-26T11:10:40+00:00" }, { - "name": "jms/serializer", - "version": "1.7.1", + "name": "phpunit/php-token-stream", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/schmittjoh/serializer.git", - "reference": "4fad8bbbe76e05de3b79ffa3db027058ed3813ff" + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "791198a2c6254db10131eecfe8c06670700904db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/4fad8bbbe76e05de3b79ffa3db027058ed3813ff", - "reference": "4fad8bbbe76e05de3b79ffa3db027058ed3813ff", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", + "reference": "791198a2c6254db10131eecfe8c06670700904db", "shasum": "" }, "require": { - "doctrine/annotations": "^1.0", - "doctrine/instantiator": "^1.0.3", - "jms/metadata": "~1.1", - "jms/parser-lib": "1.*", - "php": ">=5.5.0", - "phpcollection/phpcollection": "~0.1", - "phpoption/phpoption": "^1.1" - }, - "conflict": { - "jms/serializer-bundle": "<1.2.1", - "twig/twig": "<1.12" + "ext-tokenizer": "*", + "php": "^7.0" }, "require-dev": { - "doctrine/orm": "~2.1", - "doctrine/phpcr-odm": "^1.3|^2.0", - "ext-pdo_sqlite": "*", - "jackalope/jackalope-doctrine-dbal": "^1.1.5", - "phpunit/phpunit": "^4.8|^5.0", - "propel/propel1": "~1.7", - "symfony/expression-language": "^2.6|^3.0", - "symfony/filesystem": "^2.1", - "symfony/form": "~2.1|^3.0", - "symfony/translation": "^2.1|^3.0", - "symfony/validator": "^2.2|^3.0", - "symfony/yaml": "^2.1|^3.0", - "twig/twig": "~1.12|~2.0" - }, - "suggest": { - "doctrine/cache": "Required if you like to use cache functionality.", - "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.", - "symfony/yaml": "Required if you'd like to serialize data to YAML format." + "phpunit/phpunit": "^6.2.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "2.0-dev" } }, "autoload": { - "psr-0": { - "JMS\\Serializer": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "BSD-3-Clause" ], "authors": [ { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.", - "homepage": "http://jmsyst.com/libs/serializer", + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", "keywords": [ - "deserialization", - "jaxb", - "json", - "serialization", - "xml" + "tokenizer" ], - "time": "2017-05-15T08:35:42+00:00" + "abandoned": true, + "time": "2017-11-27T05:48:46+00:00" }, { - "name": "justinrainbow/json-schema", - "version": "1.6.1", + "name": "phpunit/phpunit", + "version": "5.7.27", "source": { "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "cc84765fb7317f6b07bd8ac78364747f95b86341" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/cc84765fb7317f6b07bd8ac78364747f95b86341", - "reference": "cc84765fb7317f6b07bd8ac78364747f95b86341", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", + "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", "shasum": "" }, "require": { - "php": ">=5.3.29" + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "~1.3", + "php": "^5.6 || ^7.0", + "phpspec/prophecy": "^1.6.2", + "phpunit/php-code-coverage": "^4.0.4", + "phpunit/php-file-iterator": "~1.4", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": "^1.0.6", + "phpunit/phpunit-mock-objects": "^3.2", + "sebastian/comparator": "^1.2.4", + "sebastian/diff": "^1.4.3", + "sebastian/environment": "^1.3.4 || ^2.0", + "sebastian/exporter": "~2.0", + "sebastian/global-state": "^1.1", + "sebastian/object-enumerator": "~2.0", + "sebastian/resource-operations": "~1.0", + "sebastian/version": "^1.0.6|^2.0.1", + "symfony/yaml": "~2.1|~3.0|~4.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "3.0.2" }, "require-dev": { - "json-schema/json-schema-test-suite": "1.1.0", - "phpdocumentor/phpdocumentor": "~2", - "phpunit/phpunit": "~3.7" + "ext-pdo": "*" + }, + "suggest": { + "ext-xdebug": "*", + "phpunit/php-invoker": "~1.1" }, "bin": [ - "bin/validate-json" + "phpunit" ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "5.7.x-dev" } }, "autoload": { - "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -862,129 +835,106 @@ ], "authors": [ { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", "keywords": [ - "json", - "schema" + "phpunit", + "testing", + "xunit" ], - "time": "2016-01-25T15:43:01+00:00" + "time": "2018-02-01T05:50:59+00:00" }, { - "name": "kherge/version", - "version": "1.0.1", + "name": "phpunit/phpunit-mock-objects", + "version": "3.4.4", "source": { "type": "git", - "url": "https://github.com/kherge-abandoned/Version.git", - "reference": "f07cf83f8ce533be8f93d2893d96d674bbeb7e30" + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kherge-abandoned/Version/zipball/f07cf83f8ce533be8f93d2893d96d674bbeb7e30", - "reference": "f07cf83f8ce533be8f93d2893d96d674bbeb7e30", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", + "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", "shasum": "" }, "require": { - "php": ">=5.3.3" + "doctrine/instantiator": "^1.0.2", + "php": "^5.6 || ^7.0", + "phpunit/php-text-template": "^1.2", + "sebastian/exporter": "^1.2 || ^2.0" + }, + "conflict": { + "phpunit/phpunit": "<5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.4" + }, + "suggest": { + "ext-soap": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "3.2.x-dev" } }, "autoload": { - "psr-0": { - "KevinGH\\Version": "src/lib/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Kevin Herrera", - "email": "me@kevingh.com" + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" } ], - "description": "A parsing and comparison library for semantic versioning.", - "homepage": "http://github.com/kherge/Version", + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], "abandoned": true, - "time": "2012-08-16T17:13:03+00:00" + "time": "2017-06-30T09:13:00+00:00" }, { - "name": "monolog/monolog", - "version": "1.22.1", + "name": "psr/log", + "version": "1.1.4", "source": { "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "1e044bc4b34e91743943479f1be7a1d5eb93add0" + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1e044bc4b34e91743943479f1be7a1d5eb93add0", - "reference": "1e044bc4b34e91743943479f1be7a1d5eb93add0", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", "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", - "jakub-onderka/php-parallel-lint": "0.9", - "php-amqplib/php-amqplib": "~2.4", - "php-console/php-console": "^3.1.3", - "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0", - "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", - "swiftmailer/swiftmailer": "~5.3" - }, - "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" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { "psr-4": { - "Monolog\\": "src/Monolog" + "Psr\\Log\\": "Psr/Log/" } }, "notification-url": "https://packagist.org/downloads/", @@ -993,89 +943,95 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", "keywords": [ "log", - "logging", + "psr", "psr-3" ], - "time": "2017-03-13T07:08:03+00:00" + "time": "2021-05-03T11:20:27+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.6.1", + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102" + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102", - "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", "shasum": "" }, "require": { - "php": ">=5.4.0" + "php": ">=5.6" }, "require-dev": { - "doctrine/collections": "1.*", - "phpunit/phpunit": "~4.1" + "phpunit/phpunit": "^8.5" }, "type": "library", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], - "description": "Create deep copies (clones) of your objects", - "homepage": "https://github.com/myclabs/DeepCopy", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } ], - "time": "2017-04-12T18:52:22+00:00" + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2020-11-30T08:15:22+00:00" }, { - "name": "nikic/php-parser", - "version": "v1.4.1", + "name": "sebastian/comparator", + "version": "1.2.4", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51", - "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=5.3" + "php": ">=5.3.3", + "sebastian/diff": "~1.2", + "sebastian/exporter": "~1.2 || ~2.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { - "files": [ - "lib/bootstrap.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1084,2377 +1040,233 @@ ], "authors": [ { - "name": "Nikita Popov" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "A PHP parser written in PHP", + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "http://www.github.com/sebastianbergmann/comparator", "keywords": [ - "parser", - "php" + "comparator", + "compare", + "equality" ], - "time": "2015-09-19T14:15:08+00:00" + "time": "2017-01-29T09:50:25+00:00" }, { - "name": "phpcollection/phpcollection", - "version": "0.5.0", + "name": "sebastian/diff", + "version": "1.4.3", "source": { "type": "git", - "url": "https://github.com/schmittjoh/php-collection.git", - "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-collection/zipball/f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6", - "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", "shasum": "" }, "require": { - "phpoption/phpoption": "1.*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.4-dev" - } - }, - "autoload": { - "psr-0": { - "PhpCollection": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache2" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "General-Purpose Collection Library for PHP", - "keywords": [ - "collection", - "list", - "map", - "sequence", - "set" - ], - "time": "2015-05-17T12:39:23+00:00" - }, - { - "name": "phpdocumentor/fileset", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/Fileset.git", - "reference": "bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/Fileset/zipball/bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0", - "reference": "bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "symfony/finder": "~2.1" - }, - "require-dev": { - "phpunit/phpunit": "~3.7" - }, - "type": "library", - "autoload": { - "psr-0": { - "phpDocumentor": [ - "src/", - "tests/unit/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Fileset component for collecting a set of files given directories and file paths", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "files", - "fileset", - "phpdoc" - ], - "time": "2013-08-06T21:07:42+00:00" - }, - { - "name": "phpdocumentor/graphviz", - "version": "1.0.4", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/GraphViz.git", - "reference": "a906a90a9f230535f25ea31caf81b2323956283f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/GraphViz/zipball/a906a90a9f230535f25ea31caf81b2323956283f", - "reference": "a906a90a9f230535f25ea31caf81b2323956283f", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "autoload": { - "psr-0": { - "phpDocumentor": [ - "src/", - "tests/unit" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" - } - ], - "time": "2016-02-02T13:00:08+00:00" - }, - { - "name": "phpdocumentor/phpdocumentor", - "version": "v2.9.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/phpDocumentor2.git", - "reference": "be607da0eef9b9249c43c5b4820d25d631c73667" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/phpDocumentor2/zipball/be607da0eef9b9249c43c5b4820d25d631c73667", - "reference": "be607da0eef9b9249c43c5b4820d25d631c73667", - "shasum": "" - }, - "require": { - "cilex/cilex": "~1.0", - "erusev/parsedown": "~1.0", - "herrera-io/phar-update": "1.0.3", - "jms/serializer": ">=0.12", - "monolog/monolog": "~1.6", - "php": ">=5.3.3", - "phpdocumentor/fileset": "~1.0", - "phpdocumentor/graphviz": "~1.0", - "phpdocumentor/reflection": "^3.0", - "phpdocumentor/reflection-docblock": "~2.0", - "symfony/config": "~2.3", - "symfony/console": "~2.3", - "symfony/event-dispatcher": "~2.1", - "symfony/process": "~2.0", - "symfony/stopwatch": "~2.3", - "symfony/validator": "~2.2", - "twig/twig": "~1.3", - "zendframework/zend-cache": "~2.1", - "zendframework/zend-config": "~2.1", - "zendframework/zend-filter": "~2.1", - "zendframework/zend-i18n": "~2.1", - "zendframework/zend-serializer": "~2.1", - "zendframework/zend-servicemanager": "~2.1", - "zendframework/zend-stdlib": "~2.1", - "zetacomponents/document": ">=1.3.1" - }, - "require-dev": { - "behat/behat": "~3.0", - "mikey179/vfsstream": "~1.2", - "mockery/mockery": "~0.9@dev", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.4", - "symfony/expression-language": "~2.4" - }, - "suggest": { - "ext-twig": "Enabling the twig extension improves the generation of twig based templates.", - "ext-xslcache": "Enabling the XSLCache extension improves the generation of xml based templates." - }, - "bin": [ - "bin/phpdoc.php", - "bin/phpdoc" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-develop": "2.9-dev" - } - }, - "autoload": { - "psr-0": { - "phpDocumentor": [ - "src/", - "tests/unit/" - ], - "Cilex\\Provider": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Documentation Generator for PHP", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "api", - "application", - "dga", - "documentation", - "phpdoc" - ], - "time": "2016-05-22T09:50:56+00:00" - }, - { - "name": "phpdocumentor/reflection", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/Reflection.git", - "reference": "793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/Reflection/zipball/793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d", - "reference": "793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^1.0", - "php": ">=5.3.3", - "phpdocumentor/reflection-docblock": "~2.0", - "psr/log": "~1.0" - }, - "require-dev": { - "behat/behat": "~2.4", - "mockery/mockery": "~0.8", - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "phpDocumentor": [ - "src/", - "tests/unit/", - "tests/mocks/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Reflection library to do Static Analysis for PHP Projects", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2016-05-21T08:42:32+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "2.0.5", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b", - "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "suggest": { - "dflydev/markdown": "~1.0", - "erusev/parsedown": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "phpDocumentor": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" - } - ], - "time": "2016-01-25T08:17:30+00:00" - }, - { - "name": "phpoption/phpoption", - "version": "1.5.0", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/php-option.git", - "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/94e644f7d2051a5f0fcf77d81605f152eecff0ed", - "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "4.7.*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "autoload": { - "psr-0": { - "PhpOption\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache2" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Option Type for PHP", - "keywords": [ - "language", - "option", - "php", - "type" - ], - "time": "2015-07-25T16:39:46+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.7.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "93d39f1f7f9326d746203c7c056f300f7f126073" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073", - "reference": "93d39f1f7f9326d746203c7c056f300f7f126073", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", - "sebastian/comparator": "^1.1|^2.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8 || ^5.6.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.6.x-dev" - } - }, - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2017-03-02T20:05:34+00:00" - }, - { - "name": "phpstan/phpstan-shim", - "version": "0.8.4", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan-shim.git", - "reference": "0f18bcb91b7ee29571fab315d334752b123dc003" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-shim/zipball/0f18bcb91b7ee29571fab315d334752b123dc003", - "reference": "0f18bcb91b7ee29571fab315d334752b123dc003", - "shasum": "" - }, - "require": { - "php": "~7.0" - }, - "provide": { - "phpstan/phpstan": "0.8" - }, - "bin": [ - "phpstan.phar" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.8-dev" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPStan Phar distribution", - "time": "2017-08-25T08:33:08+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "4.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", - "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^5.6 || ^7.0", - "phpunit/php-file-iterator": "^1.3", - "phpunit/php-text-template": "^1.2", - "phpunit/php-token-stream": "^1.4.2 || ^2.0", - "sebastian/code-unit-reverse-lookup": "^1.0", - "sebastian/environment": "^1.3.2 || ^2.0", - "sebastian/version": "^1.0 || ^2.0" - }, - "require-dev": { - "ext-xdebug": "^2.1.4", - "phpunit/phpunit": "^5.7" - }, - "suggest": { - "ext-xdebug": "^2.5.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2017-04-02T07:44:40+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "1.4.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", - "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2016-10-03T07:40:28+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21T13:50:34+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "1.0.9", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2017-02-26T11:10:40+00:00" - }, - { - "name": "phpunit/php-token-stream", - "version": "1.4.11", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7", - "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2017-02-27T10:12:30+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "5.7.20", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3cb94a5f8c07a03c8b7527ed7468a2926203f58b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3cb94a5f8c07a03c8b7527ed7468a2926203f58b", - "reference": "3cb94a5f8c07a03c8b7527ed7468a2926203f58b", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "~1.3", - "php": "^5.6 || ^7.0", - "phpspec/prophecy": "^1.6.2", - "phpunit/php-code-coverage": "^4.0.4", - "phpunit/php-file-iterator": "~1.4", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "^3.2", - "sebastian/comparator": "^1.2.4", - "sebastian/diff": "^1.4.3", - "sebastian/environment": "^1.3.4 || ^2.0", - "sebastian/exporter": "~2.0", - "sebastian/global-state": "^1.1", - "sebastian/object-enumerator": "~2.0", - "sebastian/resource-operations": "~1.0", - "sebastian/version": "~1.0.3|~2.0", - "symfony/yaml": "~2.1|~3.0" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-xdebug": "*", - "phpunit/php-invoker": "~1.1" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.7.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2017-05-22T07:42:55+00:00" - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "3.4.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", - "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.6 || ^7.0", - "phpunit/php-text-template": "^1.2", - "sebastian/exporter": "^1.2 || ^2.0" - }, - "conflict": { - "phpunit/phpunit": "<5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.4" - }, - "suggest": { - "ext-soap": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "time": "2016-12-08T20:27:08+00:00" - }, - { - "name": "pimple/pimple", - "version": "v1.1.1", - "source": { - "type": "git", - "url": "https://github.com/silexphp/Pimple.git", - "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/silexphp/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d", - "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-0": { - "Pimple": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", - "homepage": "http://pimple.sensiolabs.org", - "keywords": [ - "container", - "dependency injection" - ], - "time": "2013-11-22T08:30:29+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" - ], - "time": "2017-02-14T16:28:37+00:00" - }, - { - "name": "psr/log", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.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" - ], - "time": "2016-10-10T12:19:37+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" - }, - { - "name": "sebastian/comparator", - "version": "1.2.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2 || ~2.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2017-01-29T09:50:25+00:00" - }, - { - "name": "sebastian/diff", - "version": "1.4.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" - ], - "time": "2017-05-22T07:24:03+00:00" - }, - { - "name": "sebastian/environment", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", - "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.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": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2016-11-26T07:53:53+00:00" - }, - { - "name": "sebastian/exporter", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", - "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~2.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "~4.4" - }, - "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": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2016-11-19T08:54:04+00:00" - }, - { - "name": "sebastian/global-state", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2015-10-12T03:26:01+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", - "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", - "shasum": "" - }, - "require": { - "php": ">=5.6", - "sebastian/recursion-context": "~2.0" - }, - "require-dev": { - "phpunit/phpunit": "~5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-02-18T15:18:39+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", - "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" - }, - "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": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2016-11-19T07:33:16+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "shasum": "" - }, - "require": { - "php": ">=5.6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28T20:34:47+00:00" - }, - { - "name": "sebastian/version", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" - }, - { - "name": "seld/jsonlint", - "version": "1.6.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "791f8c594f300d246cdf01c6b3e1e19611e301d8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/791f8c594f300d246cdf01c6b3e1e19611e301d8", - "reference": "791f8c594f300d246cdf01c6b3e1e19611e301d8", - "shasum": "" - }, - "require": { - "php": "^5.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.5" - }, - "bin": [ - "bin/jsonlint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "JSON Linter", - "keywords": [ - "json", - "linter", - "parser", - "validator" - ], - "time": "2017-03-06T16:42:24+00:00" - }, - { - "name": "squizlabs/php_codesniffer", - "version": "2.9.1", - "source": { - "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", - "shasum": "" - }, - "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "bin": [ - "scripts/phpcs", - "scripts/phpcbf" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "classmap": [ - "CodeSniffer.php", - "CodeSniffer/CLI.php", - "CodeSniffer/Exception.php", - "CodeSniffer/File.php", - "CodeSniffer/Fixer.php", - "CodeSniffer/Report.php", - "CodeSniffer/Reporting.php", - "CodeSniffer/Sniff.php", - "CodeSniffer/Tokens.php", - "CodeSniffer/Reports/", - "CodeSniffer/Tokenizers/", - "CodeSniffer/DocGenerators/", - "CodeSniffer/Standards/AbstractPatternSniff.php", - "CodeSniffer/Standards/AbstractScopeSniff.php", - "CodeSniffer/Standards/AbstractVariableSniff.php", - "CodeSniffer/Standards/IncorrectPatternException.php", - "CodeSniffer/Standards/Generic/Sniffs/", - "CodeSniffer/Standards/MySource/Sniffs/", - "CodeSniffer/Standards/PEAR/Sniffs/", - "CodeSniffer/Standards/PSR1/Sniffs/", - "CodeSniffer/Standards/PSR2/Sniffs/", - "CodeSniffer/Standards/Squiz/Sniffs/", - "CodeSniffer/Standards/Zend/Sniffs/" - ] - }, - "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": "http://www.squizlabs.com/php-codesniffer", - "keywords": [ - "phpcs", - "standards" - ], - "time": "2017-05-22T02:43:20+00:00" - }, - { - "name": "symfony/config", - "version": "v2.8.22", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "0b8541d18507d10204a08384640ff6df3c739ebe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/0b8541d18507d10204a08384640ff6df3c739ebe", - "reference": "0b8541d18507d10204a08384640ff6df3c739ebe", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/filesystem": "~2.3|~3.0.0" - }, - "require-dev": { - "symfony/yaml": "~2.7|~3.0.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "time": "2017-04-12T14:07:15+00:00" - }, - { - "name": "symfony/console", - "version": "v2.8.22", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "3ef6ef64abecd566d551d9e7f6393ac6e93b2462" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3ef6ef64abecd566d551d9e7f6393ac6e93b2462", - "reference": "3ef6ef64abecd566d551d9e7f6393ac6e93b2462", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/debug": "^2.7.2|~3.0.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.1|~3.0.0", - "symfony/process": "~2.1|~3.0.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "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", - "time": "2017-06-02T14:36:56+00:00" - }, - { - "name": "symfony/debug", - "version": "v3.0.9", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/697c527acd9ea1b2d3efac34d9806bf255278b0a", - "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" - }, - "require-dev": { - "symfony/class-loader": "~2.8|~3.0", - "symfony/http-kernel": "~2.8|~3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "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", - "time": "2016-07-30T07:22:48+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v2.8.22", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "1377400fd641d7d1935981546aaef780ecd5bf6d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1377400fd641d7d1935981546aaef780ecd5bf6d", - "reference": "1377400fd641d7d1935981546aaef780ecd5bf6d", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^2.0.5|~3.0.0", - "symfony/dependency-injection": "~2.6|~3.0.0", - "symfony/expression-language": "~2.6|~3.0.0", - "symfony/stopwatch": "~2.3|~3.0.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "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", - "time": "2017-06-02T07:47:27+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v3.0.9", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "b2da5009d9bacbd91d83486aa1f44c793a8c380d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b2da5009d9bacbd91d83486aa1f44c793a8c380d", - "reference": "b2da5009d9bacbd91d83486aa1f44c793a8c380d", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2016-07-20T05:43:46+00:00" - }, - { - "name": "symfony/finder", - "version": "v2.8.22", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "4f4e84811004e065a3bb5ceeb1d9aa592630f9ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/4f4e84811004e065a3bb5ceeb1d9aa592630f9ad", - "reference": "4f4e84811004e065a3bb5ceeb1d9aa592630f9ad", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Finder Component", - "homepage": "https://symfony.com", - "time": "2017-06-01T20:52:29+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "f29dca382a6485c3cbe6379f0c61230167681937" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f29dca382a6485c3cbe6379f0c61230167681937", - "reference": "f29dca382a6485c3cbe6379f0c61230167681937", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "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" - ], - "time": "2017-06-09T14:24:12+00:00" - }, - { - "name": "symfony/process", - "version": "v2.8.22", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "d54232f5682fda2f8bbebff7c81b864646867ab9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d54232f5682fda2f8bbebff7c81b864646867ab9", - "reference": "d54232f5682fda2f8bbebff7c81b864646867ab9", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Process Component", - "homepage": "https://symfony.com", - "time": "2017-05-08T01:19:21+00:00" - }, - { - "name": "symfony/stopwatch", - "version": "v2.8.22", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "e02577b841394a78306d7b547701bb7bb705bad5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/e02577b841394a78306d7b547701bb7bb705bad5", - "reference": "e02577b841394a78306d7b547701bb7bb705bad5", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "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 Stopwatch Component", - "homepage": "https://symfony.com", - "time": "2017-04-12T14:07:15+00:00" - }, - { - "name": "symfony/translation", - "version": "v3.0.9", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "eee6c664853fd0576f21ae25725cfffeafe83f26" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/eee6c664853fd0576f21ae25725cfffeafe83f26", - "reference": "eee6c664853fd0576f21ae25725cfffeafe83f26", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/config": "<2.8" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/intl": "~2.8|~3.0", - "symfony/yaml": "~2.8|~3.0" - }, - "suggest": { - "psr/log": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "1.4-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "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": "Kore Nordmann", + "email": "mail@kore-nordmann.de" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony Translation Component", - "homepage": "https://symfony.com", - "time": "2016-07-30T07:22:48+00:00" + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2017-05-22T07:24:03+00:00" }, { - "name": "symfony/validator", - "version": "v2.8.22", + "name": "sebastian/environment", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/validator.git", - "reference": "9f323f762ad21bfb9df7c1afacbdd8addf0f8c50" + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/9f323f762ad21bfb9df7c1afacbdd8addf0f8c50", - "reference": "9f323f762ad21bfb9df7c1afacbdd8addf0f8c50", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation": "~2.4|~3.0.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "doctrine/annotations": "~1.0", - "doctrine/cache": "~1.0", - "egulias/email-validator": "^1.2.1", - "symfony/config": "~2.2|~3.0.0", - "symfony/expression-language": "~2.4|~3.0.0", - "symfony/http-foundation": "~2.3|~3.0.0", - "symfony/intl": "~2.7.25|^2.8.18|~3.2.5", - "symfony/property-access": "~2.3|~3.0.0", - "symfony/yaml": "^2.0.5|~3.0.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader and metadata cache.", - "egulias/email-validator": "Strict (RFC compliant) email validation", - "symfony/config": "", - "symfony/expression-language": "For using the 2.4 Expression validator", - "symfony/http-foundation": "", - "symfony/intl": "", - "symfony/property-access": "For using the 2.4 Validator API", - "symfony/yaml": "" + "phpunit/phpunit": "^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Validator\\": "" - }, - "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 Validator Component", - "homepage": "https://symfony.com", - "time": "2017-06-02T14:36:56+00:00" + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2016-11-26T07:53:53+00:00" }, { - "name": "symfony/yaml", - "version": "v3.3.2", + "name": "sebastian/exporter", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "9752a30000a8ca9f4b34b5227d15d0101b96b063" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/9752a30000a8ca9f4b34b5227d15d0101b96b063", - "reference": "9752a30000a8ca9f4b34b5227d15d0101b96b063", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.3.3", + "sebastian/recursion-context": "~2.0" }, "require-dev": { - "symfony/console": "~2.8|~3.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "ext-mbstring": "*", + "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "2.0.x-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": "Jeff Welch", + "email": "whatthejeff@gmail.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2017-06-02T22:05:06+00:00" + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2016-11-19T08:54:04+00:00" }, { - "name": "twig/twig", - "version": "v1.34.3", + "name": "sebastian/global-state", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "451c6f4197e113e24c1c85bc3fc8c2d77adeff2e" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/451c6f4197e113e24c1c85bc3fc8c2d77adeff2e", - "reference": "451c6f4197e113e24c1c85bc3fc8c2d77adeff2e", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "psr/container": "^1.0", - "symfony/debug": "~2.7", - "symfony/phpunit-bridge": "~3.3@dev" + "phpunit/phpunit": "~4.2" + }, + "suggest": { + "ext-uopz": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.34-dev" + "dev-master": "1.0-dev" } }, "autoload": { - "psr-0": { - "Twig_": "lib/" - }, - "psr-4": { - "Twig\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3462,738 +1274,693 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - }, - { - "name": "Twig Team", - "homepage": "http://twig.sensiolabs.org/contributors", - "role": "Contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "http://twig.sensiolabs.org", + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", "keywords": [ - "templating" + "global state" ], - "time": "2017-06-07T18:45:17+00:00" + "time": "2015-10-12T03:26:01+00:00" }, { - "name": "zendframework/zend-cache", - "version": "2.7.2", + "name": "sebastian/object-enumerator", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-cache.git", - "reference": "c98331b96d3b9d9b24cf32d02660602edb34d039" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-cache/zipball/c98331b96d3b9d9b24cf32d02660602edb34d039", - "reference": "c98331b96d3b9d9b24cf32d02660602edb34d039", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", + "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-stdlib": "^2.7 || ^3.0" + "php": ">=5.6", + "sebastian/recursion-context": "~2.0" }, "require-dev": { - "phpbench/phpbench": "^0.10.0", - "phpunit/phpunit": "^4.8", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-serializer": "^2.6", - "zendframework/zend-session": "^2.6.2" - }, - "suggest": { - "ext-apc": "APC or compatible extension, to use the APC storage adapter", - "ext-apcu": "APCU >= 5.1.0, to use the APCu storage adapter", - "ext-dba": "DBA, to use the DBA storage adapter", - "ext-memcache": "Memcache >= 2.0.0 to use the Memcache storage adapter", - "ext-memcached": "Memcached >= 1.0.0 to use the Memcached storage adapter", - "ext-mongo": "Mongo, to use MongoDb storage adapter", - "ext-redis": "Redis, to use Redis storage adapter", - "ext-wincache": "WinCache, to use the WinCache storage adapter", - "ext-xcache": "XCache, to use the XCache storage adapter", - "mongofill/mongofill": "Alternative to ext-mongo - a pure PHP implementation designed as a drop in replacement", - "zendframework/zend-serializer": "Zend\\Serializer component", - "zendframework/zend-session": "Zend\\Session component" + "phpunit/phpunit": "~5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev", - "dev-develop": "2.8-dev" - }, - "zf": { - "component": "Zend\\Cache", - "config-provider": "Zend\\Cache\\ConfigProvider" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "Zend\\Cache\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "provides a generic way to cache any data", - "homepage": "https://github.com/zendframework/zend-cache", - "keywords": [ - "cache", - "zf2" + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } ], - "time": "2016-12-16T11:35:47+00:00" + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-02-18T15:18:39+00:00" }, { - "name": "zendframework/zend-config", - "version": "2.6.0", + "name": "sebastian/recursion-context", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-config.git", - "reference": "2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-config/zipball/2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d", - "reference": "2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" + "php": ">=5.3.3" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-filter": "^2.6", - "zendframework/zend-i18n": "^2.5", - "zendframework/zend-json": "^2.6.1", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3" - }, - "suggest": { - "zendframework/zend-filter": "Zend\\Filter component", - "zendframework/zend-i18n": "Zend\\I18n component", - "zendframework/zend-json": "Zend\\Json to use the Json reader or writer classes", - "zendframework/zend-servicemanager": "Zend\\ServiceManager for use with the Config Factory to retrieve reader and writer instances" + "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev", - "dev-develop": "2.7-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "Zend\\Config\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "provides a nested object property based user interface for accessing this configuration data within application code", - "homepage": "https://github.com/zendframework/zend-config", - "keywords": [ - "config", - "zf2" + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } ], - "time": "2016-02-04T23:01:10+00:00" + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2016-11-19T07:33:16+00:00" }, { - "name": "zendframework/zend-eventmanager", - "version": "3.1.0", + "name": "sebastian/resource-operations", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-eventmanager.git", - "reference": "c3bce7b7d47c54040b9ae51bc55491c72513b75d" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/c3bce7b7d47c54040b9ae51bc55491c72513b75d", - "reference": "c3bce7b7d47c54040b9ae51bc55491c72513b75d", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "athletic/athletic": "^0.1", - "container-interop/container-interop": "^1.1.0", - "phpunit/phpunit": "^5.6", - "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" + "php": ">=5.6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev", - "dev-develop": "3.2-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "psr-4": { - "Zend\\EventManager\\": "src/" - } + "classmap": [ + "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" + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } ], - "time": "2016-12-19T21:47:12+00:00" + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2015-07-28T20:34:47+00:00" }, { - "name": "zendframework/zend-filter", - "version": "2.7.2", + "name": "sebastian/version", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-filter.git", - "reference": "b8d0ff872f126631bf63a932e33aa2d22d467175" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-filter/zipball/b8d0ff872f126631bf63a932e33aa2d22d467175", - "reference": "b8d0ff872f126631bf63a932e33aa2d22d467175", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "require-dev": { - "pear/archive_tar": "^1.4", - "phpunit/phpunit": "^6.0.10 || ^5.7.17", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-crypt": "^2.6 || ^3.0", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-uri": "^2.5" - }, - "suggest": { - "zendframework/zend-crypt": "Zend\\Crypt component, for encryption filters", - "zendframework/zend-i18n": "Zend\\I18n component for filters depending on i18n functionality", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for using the filter chain functionality", - "zendframework/zend-uri": "Zend\\Uri component, for the UriNormalize filter" + "php": ">=5.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev", - "dev-develop": "2.8-dev" - }, - "zf": { - "component": "Zend\\Filter", - "config-provider": "Zend\\Filter\\ConfigProvider" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "Zend\\Filter\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "provides a set of commonly needed data filters", - "homepage": "https://github.com/zendframework/zend-filter", - "keywords": [ - "filter", - "zf2" + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } ], - "time": "2017-05-17T20:56:17+00:00" + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03T07:35:21+00:00" }, { - "name": "zendframework/zend-hydrator", - "version": "1.1.0", + "name": "squizlabs/php_codesniffer", + "version": "2.9.2", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-hydrator.git", - "reference": "22652e1661a5a10b3f564cf7824a2206cf5a4a65" + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-hydrator/zipball/22652e1661a5a10b3f564cf7824a2206cf5a4a65", - "reference": "22652e1661a5a10b3f564cf7824a2206cf5a4a65", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.1.2" }, "require-dev": { - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "^2.0@dev", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-filter": "^2.6", - "zendframework/zend-inputfilter": "^2.6", - "zendframework/zend-serializer": "^2.6.1", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3" - }, - "suggest": { - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0, to support aggregate hydrator usage", - "zendframework/zend-filter": "^2.6, to support naming strategy hydrator usage", - "zendframework/zend-serializer": "^2.6.1, to use the SerializableStrategy", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3, to support hydrator plugin manager usage" + "phpunit/phpunit": "~4.0" }, + "bin": [ + "scripts/phpcs", + "scripts/phpcbf" + ], "type": "library", "extra": { "branch-alias": { - "dev-release-1.0": "1.0-dev", - "dev-release-1.1": "1.1-dev", - "dev-master": "2.0-dev", - "dev-develop": "2.1-dev" + "dev-master": "2.x-dev" } }, "autoload": { - "psr-4": { - "Zend\\Hydrator\\": "src/" - } + "classmap": [ + "CodeSniffer.php", + "CodeSniffer/CLI.php", + "CodeSniffer/Exception.php", + "CodeSniffer/File.php", + "CodeSniffer/Fixer.php", + "CodeSniffer/Report.php", + "CodeSniffer/Reporting.php", + "CodeSniffer/Sniff.php", + "CodeSniffer/Tokens.php", + "CodeSniffer/Reports/", + "CodeSniffer/Tokenizers/", + "CodeSniffer/DocGenerators/", + "CodeSniffer/Standards/AbstractPatternSniff.php", + "CodeSniffer/Standards/AbstractScopeSniff.php", + "CodeSniffer/Standards/AbstractVariableSniff.php", + "CodeSniffer/Standards/IncorrectPatternException.php", + "CodeSniffer/Standards/Generic/Sniffs/", + "CodeSniffer/Standards/MySource/Sniffs/", + "CodeSniffer/Standards/PEAR/Sniffs/", + "CodeSniffer/Standards/PSR1/Sniffs/", + "CodeSniffer/Standards/PSR2/Sniffs/", + "CodeSniffer/Standards/Squiz/Sniffs/", + "CodeSniffer/Standards/Zend/Sniffs/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-hydrator", + "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": "http://www.squizlabs.com/php-codesniffer", "keywords": [ - "hydrator", - "zf2" + "phpcs", + "standards" ], - "time": "2016-02-18T22:38:26+00:00" + "time": "2018-11-07T22:31:41+00:00" }, { - "name": "zendframework/zend-i18n", - "version": "2.7.4", + "name": "symfony/console", + "version": "v3.4.47", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-i18n.git", - "reference": "d3431e29cc00c2a1c6704e601d4371dbf24f6a31" + "url": "https://github.com/symfony/console.git", + "reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-i18n/zipball/d3431e29cc00c2a1c6704e601d4371dbf24f6a31", - "reference": "d3431e29cc00c2a1c6704e601d4371dbf24f6a31", + "url": "https://api.github.com/repos/symfony/console/zipball/a10b1da6fc93080c180bba7219b5ff5b7518fe81", + "reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81", "shasum": "" }, "require": { - "php": "^7.0 || ^5.6", - "zendframework/zend-stdlib": "^2.7 || ^3.0" + "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": { - "phpunit/phpunit": "^6.0.8 || ^5.7.15", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^2.6", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-filter": "^2.6.1", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-validator": "^2.6", - "zendframework/zend-view": "^2.6.3" + "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": { - "ext-intl": "Required for most features of Zend\\I18n; included in default builds of PHP", - "zendframework/zend-cache": "Zend\\Cache component", - "zendframework/zend-config": "Zend\\Config component", - "zendframework/zend-eventmanager": "You should install this package to use the events in the translator", - "zendframework/zend-filter": "You should install this package to use the provided filters", - "zendframework/zend-i18n-resources": "Translation resources", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component", - "zendframework/zend-validator": "You should install this package to use the provided validators", - "zendframework/zend-view": "You should install this package to use the provided view helpers" + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7-dev", - "dev-develop": "2.8-dev" - }, - "zf": { - "component": "Zend\\I18n", - "config-provider": "Zend\\I18n\\ConfigProvider" - } - }, "autoload": { "psr-4": { - "Zend\\I18n\\": "src/" - } + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "homepage": "https://github.com/zendframework/zend-i18n", - "keywords": [ - "i18n", - "zf2" + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "time": "2017-05-17T17:00:12+00:00" + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2020-10-24T10:57:07+00:00" }, { - "name": "zendframework/zend-json", - "version": "3.0.0", + "name": "symfony/debug", + "version": "v4.4.37", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-json.git", - "reference": "f42a1588e75c2a3e338cd94c37906231e616daab" + "url": "https://github.com/symfony/debug.git", + "reference": "5de6c6e7f52b364840e53851c126be4d71e60470" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-json/zipball/f42a1588e75c2a3e338cd94c37906231e616daab", - "reference": "f42a1588e75c2a3e338cd94c37906231e616daab", + "url": "https://api.github.com/repos/symfony/debug/zipball/5de6c6e7f52b364840e53851c126be4d71e60470", + "reference": "5de6c6e7f52b364840e53851c126be4d71e60470", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0" + "php": ">=7.1.3", + "psr/log": "^1|^2|^3" }, - "require-dev": { - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "^2.3", - "zendframework/zend-stdlib": "^2.7 || ^3.0" + "conflict": { + "symfony/http-kernel": "<3.4" }, - "suggest": { - "zendframework/zend-json-server": "For implementing JSON-RPC servers", - "zendframework/zend-xml2json": "For converting XML documents to JSON" + "require-dev": { + "symfony/http-kernel": "^3.4|^4.0|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev", - "dev-develop": "3.1-dev" - } - }, "autoload": { "psr-4": { - "Zend\\Json\\": "src/" - } + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP", - "homepage": "https://github.com/zendframework/zend-json", - "keywords": [ - "json", - "zf2" + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "time": "2016-04-01T02:34:00+00:00" + "description": "Provides tools to ease debugging PHP code", + "homepage": "https://symfony.com", + "time": "2022-01-02T09:41:36+00:00" }, { - "name": "zendframework/zend-serializer", - "version": "2.8.0", + "name": "symfony/polyfill-ctype", + "version": "v1.25.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-serializer.git", - "reference": "ff74ea020f5f90866eb28365327e9bc765a61a6e" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "30885182c981ab175d4d034db0f6f469898070ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-serializer/zipball/ff74ea020f5f90866eb28365327e9bc765a61a6e", - "reference": "ff74ea020f5f90866eb28365327e9bc765a61a6e", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", + "reference": "30885182c981ab175d4d034db0f6f469898070ab", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-json": "^2.5 || ^3.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" + "php": ">=7.1" }, - "require-dev": { - "phpunit/phpunit": "^4.5", - "squizlabs/php_codesniffer": "^2.3.1", - "zendframework/zend-math": "^2.6", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3" + "provide": { + "ext-ctype": "*" }, "suggest": { - "zendframework/zend-math": "(^2.6 || ^3.0) To support Python Pickle serialization", - "zendframework/zend-servicemanager": "(^2.7.5 || ^3.0.3) To support plugin manager support" + "ext-ctype": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev", - "dev-develop": "2.9-dev" + "dev-main": "1.23-dev" }, - "zf": { - "component": "Zend\\Serializer", - "config-provider": "Zend\\Serializer\\ConfigProvider" + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Zend\\Serializer\\": "src/" + "Symfony\\Polyfill\\Ctype\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "description": "provides an adapter based interface to simply generate storable representation of PHP types by different facilities, and recover", - "homepage": "https://github.com/zendframework/zend-serializer", + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", "keywords": [ - "serializer", - "zf2" + "compatibility", + "ctype", + "polyfill", + "portable" ], - "time": "2016-06-21T17:01:55+00:00" + "time": "2021-10-20T20:35:02+00:00" }, { - "name": "zendframework/zend-servicemanager", - "version": "2.7.8", + "name": "symfony/polyfill-mbstring", + "version": "v1.25.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-servicemanager.git", - "reference": "2ae3b6e4978ec2e9ff52352e661946714ed989f9" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/2ae3b6e4978ec2e9ff52352e661946714ed989f9", - "reference": "2ae3b6e4978ec2e9ff52352e661946714ed989f9", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", "shasum": "" }, "require": { - "container-interop/container-interop": "~1.0", - "php": "^5.5 || ^7.0" + "php": ">=7.1" }, - "require-dev": { - "athletic/athletic": "dev-master", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-di": "~2.5", - "zendframework/zend-mvc": "~2.5" + "provide": { + "ext-mbstring": "*" }, "suggest": { - "ocramius/proxy-manager": "ProxyManager 0.5.* to handle lazy initialization of services", - "zendframework/zend-di": "Zend\\Di component" + "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev", - "dev-develop": "3.0-dev" + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Zend\\ServiceManager\\": "src/" + "Symfony\\Polyfill\\Mbstring\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "homepage": "https://github.com/zendframework/zend-servicemanager", + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", "keywords": [ - "servicemanager", - "zf2" + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" ], - "time": "2016-12-19T19:14:29+00:00" + "time": "2021-11-30T18:21:41+00:00" }, { - "name": "zendframework/zend-stdlib", - "version": "2.7.7", + "name": "symfony/process", + "version": "v3.4.47", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-stdlib.git", - "reference": "0e44eb46788f65e09e077eb7f44d2659143bcc1f" + "url": "https://github.com/symfony/process.git", + "reference": "b8648cf1d5af12a44a51d07ef9bf980921f15fca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/0e44eb46788f65e09e077eb7f44d2659143bcc1f", - "reference": "0e44eb46788f65e09e077eb7f44d2659143bcc1f", + "url": "https://api.github.com/repos/symfony/process/zipball/b8648cf1d5af12a44a51d07ef9bf980921f15fca", + "reference": "b8648cf1d5af12a44a51d07ef9bf980921f15fca", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "zendframework/zend-hydrator": "~1.1" - }, - "require-dev": { - "athletic/athletic": "~0.1", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-config": "~2.5", - "zendframework/zend-eventmanager": "~2.5", - "zendframework/zend-filter": "~2.5", - "zendframework/zend-inputfilter": "~2.5", - "zendframework/zend-serializer": "~2.5", - "zendframework/zend-servicemanager": "~2.5" - }, - "suggest": { - "zendframework/zend-eventmanager": "To support aggregate hydrator usage", - "zendframework/zend-filter": "To support naming strategy hydrator usage", - "zendframework/zend-serializer": "Zend\\Serializer component", - "zendframework/zend-servicemanager": "To support hydrator plugin manager usage" + "php": "^5.5.9|>=7.0.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-release-2.7": "2.7-dev", - "dev-master": "3.0-dev", - "dev-develop": "3.1-dev" - } - }, "autoload": { "psr-4": { - "Zend\\Stdlib\\": "src/" - } + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "homepage": "https://github.com/zendframework/zend-stdlib", - "keywords": [ - "stdlib", - "zf2" + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "time": "2016-04-12T21:17:31+00:00" + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2020-10-24T10:57:07+00:00" }, { - "name": "zetacomponents/base", - "version": "1.9", + "name": "symfony/yaml", + "version": "v4.4.37", "source": { "type": "git", - "url": "https://github.com/zetacomponents/Base.git", - "reference": "f20df24e8de3e48b6b69b2503f917e457281e687" + "url": "https://github.com/symfony/yaml.git", + "reference": "d7f637cc0f0cc14beb0984f2bb50da560b271311" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zetacomponents/Base/zipball/f20df24e8de3e48b6b69b2503f917e457281e687", - "reference": "f20df24e8de3e48b6b69b2503f917e457281e687", + "url": "https://api.github.com/repos/symfony/yaml/zipball/d7f637cc0f0cc14beb0984f2bb50da560b271311", + "reference": "d7f637cc0f0cc14beb0984f2bb50da560b271311", "shasum": "" }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, "require-dev": { - "zetacomponents/unit-test": "*" + "symfony/console": "^3.4|^4.0|^5.0" + }, + "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": [ - "Apache-2.0" + "MIT" ], "authors": [ { - "name": "Sergey Alexeev" - }, - { - "name": "Sebastian Bergmann" - }, - { - "name": "Jan Borsodi" - }, - { - "name": "Raymond Bosman" - }, - { - "name": "Frederik Holljen" - }, - { - "name": "Kore Nordmann" - }, - { - "name": "Derick Rethans" - }, - { - "name": "Vadym Savchuk" - }, - { - "name": "Tobias Schlitt" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Alexandru Stanoi" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "The Base package provides the basic infrastructure that all packages rely on. Therefore every component relies on this package.", - "homepage": "https://github.com/zetacomponents", - "time": "2014-09-19T03:28:34+00:00" + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "time": "2022-01-24T20:11:01+00:00" }, { - "name": "zetacomponents/document", - "version": "1.3.1", + "name": "webmozart/assert", + "version": "1.10.0", "source": { "type": "git", - "url": "https://github.com/zetacomponents/Document.git", - "reference": "688abfde573cf3fe0730f82538fbd7aa9fc95bc8" + "url": "https://github.com/webmozarts/assert.git", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zetacomponents/Document/zipball/688abfde573cf3fe0730f82538fbd7aa9fc95bc8", - "reference": "688abfde573cf3fe0730f82538fbd7aa9fc95bc8", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", "shasum": "" }, "require": { - "zetacomponents/base": "*" + "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": { - "zetacomponents/unit-test": "dev-master" + "phpunit/phpunit": "^8.5.13" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, "autoload": { - "classmap": [ - "src" - ] + "psr-4": { + "Webmozart\\Assert\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann" - }, - { - "name": "Kore Nordmann" - }, - { - "name": "Derick Rethans" - }, - { - "name": "Tobias Schlitt" - }, - { - "name": "Alexandru Stanoi" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "The Document components provides a general conversion framework for different semantic document markup languages like XHTML, Docbook, RST and similar.", - "homepage": "https://github.com/zetacomponents", - "time": "2013-12-19T11:40:00+00:00" + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2021-03-09T10:59:23+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "brianium/paratest": 20 - }, + "stability-flags": [], "prefer-stable": false, "prefer-lowest": false, "platform": { "php": ">= 5.5.9", "ext-curl": "*", "ext-dom": "*", - "ext-openssl": "*" + "ext-openssl": "*", + "ext-json": "*", + "ext-zlib": "*" }, "platform-dev": [] -} \ No newline at end of file +} diff --git a/metadata.xml b/metadata.xml index 773cc683..cc66de68 100644 --- a/metadata.xml +++ b/metadata.xml @@ -1,3 +1,3 @@ - 3.0.3 + 3.0.4 \ No newline at end of file diff --git a/src/Terminals/Builders/TerminalAuthBuilder.php b/src/Terminals/Builders/TerminalAuthBuilder.php index 860dd133..a51238ec 100644 --- a/src/Terminals/Builders/TerminalAuthBuilder.php +++ b/src/Terminals/Builders/TerminalAuthBuilder.php @@ -55,6 +55,8 @@ class TerminalAuthBuilder extends TerminalBuilder public $tokenRequest; public $tokenValue; + + public $autoSubstantiation; /** * @@ -168,7 +170,7 @@ public function withToken($value) { if ($this->paymentMethod == null || ! ($this->paymentMethod instanceof CreditCardData)) { $this->paymentMethod = new CreditCardData(); - $this->paymentMethod->token = value; + $this->paymentMethod->token = $value; } return $this; } @@ -248,5 +250,11 @@ public function withClientTransactionId($clientTransactionId) { $this->clientTransactionId = $clientTransactionId; return $this; - } + } + + public function withAutoSubstantiation($healthCareCardData) + { + $this->autoSubstantiation = $healthCareCardData; + return $this; + } } diff --git a/src/Terminals/Builders/TerminalBuilder.php b/src/Terminals/Builders/TerminalBuilder.php index 53ea426a..45ea5b4c 100644 --- a/src/Terminals/Builders/TerminalBuilder.php +++ b/src/Terminals/Builders/TerminalBuilder.php @@ -31,6 +31,20 @@ abstract class TerminalBuilder extends TransactionBuilder */ public $clerkId; + /* + * Card On File Indicator, C - Cardholder initiated transaction, M - Merchant initiated transaction + * + * @var int + */ + public $cardOnFileIndicator; + + /* + * Network Transaction Identifier + * + * @var int + */ + public $cardBrandTransId; + public function __construct($type, $paymentMethodType) { $this->paymentMethodType = $paymentMethodType; @@ -48,4 +62,16 @@ public function withClerkId($clerkId) $this->clerkId = $clerkId; return $this; } + + public function withCardOnFileIndicator($cardOnFileIndicator) + { + $this->cardOnFileIndicator = $cardOnFileIndicator; + return $this; + } + + public function withCardBrandTransId ($cardBrandTransId) + { + $this->cardBrandTransId = $cardBrandTransId; + return $this; + } } diff --git a/src/Terminals/ConnectionContainer.php b/src/Terminals/ConnectionContainer.php index 91425350..613cc028 100644 --- a/src/Terminals/ConnectionContainer.php +++ b/src/Terminals/ConnectionContainer.php @@ -66,6 +66,7 @@ public static function configure(ConnectionConfig $config) static::$instance = new PaxController($config); break; case DeviceType::UPA_SATURN_1000: + case DeviceType::UPA_VERIFONE_T650P: static::$instance = new UpaController($config); break; } diff --git a/src/Terminals/Enums/DeviceType.php b/src/Terminals/Enums/DeviceType.php index cd3bc056..3a54f614 100644 --- a/src/Terminals/Enums/DeviceType.php +++ b/src/Terminals/Enums/DeviceType.php @@ -14,4 +14,5 @@ class DeviceType extends Enum const PAX_PX5 = 'PAX_PX5'; const PAX_PX7 = 'PAX_PX7'; const UPA_SATURN_1000 = 'UPA_SATURN_1000'; + const UPA_VERIFONE_T650P = 'UPA_VERIFONE_T650P'; } diff --git a/src/Terminals/UPA/Builders/UpaTerminalManageBuilder.php b/src/Terminals/UPA/Builders/UpaTerminalManageBuilder.php index b9098813..16c35f6d 100644 --- a/src/Terminals/UPA/Builders/UpaTerminalManageBuilder.php +++ b/src/Terminals/UPA/Builders/UpaTerminalManageBuilder.php @@ -28,7 +28,7 @@ protected function setupValidations() ) ->with(TransactionModifier::NONE) ->check('amount')->isNotNull() - ->check('terminalRefNumber')->isNotNull(); + ->check('transactionId')->isNotNull(); $this->validations->of( TransactionType::VOID diff --git a/src/Terminals/UPA/Entities/Enums/UpaMessageId.php b/src/Terminals/UPA/Entities/Enums/UpaMessageId.php index 4e42b74f..3ef45710 100644 --- a/src/Terminals/UPA/Entities/Enums/UpaMessageId.php +++ b/src/Terminals/UPA/Entities/Enums/UpaMessageId.php @@ -21,4 +21,8 @@ class UpaMessageId extends Enum const REVERSAL = "Reversal"; const GET_BATCH_REPORT = "GetBatchReport"; const BALANCE_INQUIRY = "BalanceInquiry"; + const PRE_AUTH = "PreAuth"; + const CAPTURE = "AuthCompletion"; + const TOKENIZE = "Tokenize"; + const GET_OPEN_TAB_DETAILS = "GetOpenTabDetails"; } diff --git a/src/Terminals/UPA/Entities/UpaResponse.php b/src/Terminals/UPA/Entities/UpaResponse.php index d2ea5ac3..f79151a7 100644 --- a/src/Terminals/UPA/Entities/UpaResponse.php +++ b/src/Terminals/UPA/Entities/UpaResponse.php @@ -45,6 +45,7 @@ class UpaResponse extends UpaResponseHandler public $tipDue; public $availableBalance; public $terminalRefNumber; + public $cardBrandTransId; //payment public $cardHolderName; @@ -145,6 +146,7 @@ public function getResponseMapping() 'baseDue' => 'baseDue', 'taxDue' => 'taxDue', 'tipDue' => 'tipDue', + 'cardBrandTransId' => 'cardBrandTransId', //payment 'cardHolderName' => 'cardHolderName', diff --git a/src/Terminals/UPA/Responses/UpaReportHandler.php b/src/Terminals/UPA/Responses/UpaReportHandler.php new file mode 100644 index 00000000..5fdcc1e2 --- /dev/null +++ b/src/Terminals/UPA/Responses/UpaReportHandler.php @@ -0,0 +1,30 @@ +parseResponse($jsonResponse); + } + + public function parseResponse($jsonResponse) + { + if (!empty($jsonResponse['data']['cmdResult'])) { + $this->checkResponse($jsonResponse['data']['cmdResult']); + } + + if (!empty($jsonResponse['data']['data']['OpenTabDetails'])) { + $this->deviceResponseCode = '00'; + $this->reportType = 'OpenTab'; + $this->reportRecords = $jsonResponse['data']['data']['OpenTabDetails']; + } + } +} diff --git a/src/Terminals/UPA/SubGroups/RequestParamFields.php b/src/Terminals/UPA/SubGroups/RequestParamFields.php index fac4f108..66b06168 100644 --- a/src/Terminals/UPA/SubGroups/RequestParamFields.php +++ b/src/Terminals/UPA/SubGroups/RequestParamFields.php @@ -4,7 +4,7 @@ use GlobalPayments\Api\PaymentMethods\CreditCardData; use GlobalPayments\Api\Terminals\Interfaces\IRequestSubGroup; -use GlobalPayments\Api\Terminals\Enums\ControlCodes; +use GlobalPayments\Api\Entities\Enums\StoredCredentialInitiator; class RequestParamFields implements IRequestSubGroup { @@ -24,6 +24,13 @@ class RequestParamFields implements IRequestSubGroup * Token returned previously by the host. */ public $tokenValue = null; + + /* + *Card On File Indicator + */ + public $cardOnFileIndicator = null; + + public $cardBrandTransId = null; /* * return Array @@ -41,6 +48,15 @@ public function setParams($builder) if (!empty($builder->clerkId)) { $this->clerkId = $builder->clerkId; } + + if (!empty($builder->cardOnFileIndicator)) { + $this->cardOnFileIndicator = ($builder->cardOnFileIndicator === StoredCredentialInitiator::CARDHOLDER) + ? 'C' : 'M'; + } + + if (!empty($builder->cardBrandTransId)) { + $this->cardBrandTransId = $builder->cardBrandTransId; + } if (!empty($builder->requestMultiUseToken)) { $this->tokenRequest = $builder->requestMultiUseToken; diff --git a/src/Terminals/UPA/SubGroups/RequestTransactionFields.php b/src/Terminals/UPA/SubGroups/RequestTransactionFields.php index 1d369303..b16ea916 100644 --- a/src/Terminals/UPA/SubGroups/RequestTransactionFields.php +++ b/src/Terminals/UPA/SubGroups/RequestTransactionFields.php @@ -51,7 +51,22 @@ class RequestTransactionFields implements IRequestSubGroup public $tranNo = null; public $totalAmount = null; - + + public $amount = null; + + public $referenceNumber = null; + + //Health Card related fields + public $cardIsHSAFSA = null; + + public $prescriptionAmount = null; + + public $clinicAmount = null; + + public $dentalAmount = null; + + public $visionOpticalAmount = null; + /* * return Array */ @@ -68,6 +83,9 @@ public function setParams($builder) if (isset($builder->amount)) { if ($builder->transactionType == TransactionType::REFUND) { $this->totalAmount = sprintf('%08.2f', $builder->amount); + } elseif ($builder->transactionType == TransactionType::AUTH + || $builder->transactionType == TransactionType::CAPTURE) { + $this->amount = sprintf('%08.2f', $builder->amount); } else { $this->baseAmount = sprintf('%07.2f', $builder->amount); } @@ -92,5 +110,39 @@ public function setParams($builder) if (!empty($builder->terminalRefNumber)) { $this->tranNo = $builder->terminalRefNumber; } + + if ($builder->paymentMethod != null && + $builder->paymentMethod instanceof TransactionReference && + !empty($builder->paymentMethod->transactionId)) { + $this->referenceNumber = $builder->paymentMethod->transactionId; + } + + if (!empty($builder->autoSubstantiation)) { + $this->setHealthCardData($builder->autoSubstantiation); + } + } + + private function setHealthCardData($autoSubstantiation) + { + if (!empty($autoSubstantiation->getPrescriptionSubTotal())) { + $this->prescriptionAmount = sprintf('%06.2f', $autoSubstantiation->getPrescriptionSubTotal()); + } + + if (!empty($autoSubstantiation->getClinicSubTotal())) { + $this->clinicAmount = sprintf('%06.2f', $autoSubstantiation->getClinicSubTotal()); + } + + if (!empty($autoSubstantiation->getDentalSubTotal())) { + $this->dentalAmount = sprintf('%06.2f', $autoSubstantiation->getDentalSubTotal()); + } + + if (!empty($autoSubstantiation->getVisionSubTotal())) { + $this->visionOpticalAmount = sprintf('%06.2f', $autoSubstantiation->getVisionSubTotal()); + } + + if ($this->prescriptionAmount > 0 || $this->clinicAmount > 0 || $this->dentalAmount > 0 + || $this->visionOpticalAmount > 0) { + $this->cardIsHSAFSA = 1; + } } } diff --git a/src/Terminals/UPA/UpaController.php b/src/Terminals/UPA/UpaController.php index f27c2040..02c0b5cb 100644 --- a/src/Terminals/UPA/UpaController.php +++ b/src/Terminals/UPA/UpaController.php @@ -62,12 +62,12 @@ public function send($message, $requestType = null) public function manageTransaction($builder) { $requestId = (!empty($builder->requestId)) ? - $builder->requestId : - $this->requestIdProvider->getRequestId(); - + $builder->requestId : + $this->requestIdProvider->getRequestId(); + $requestTransactionFields = new RequestTransactionFields(); $requestTransactionFields->setParams($builder); - + $transactionType = $this->mapTransactionType($builder->transactionType); return $this->doTransaction( $transactionType, @@ -80,16 +80,17 @@ public function manageTransaction($builder) public function processTransaction($builder) { $requestId = (!empty($builder->requestId)) ? - $builder->requestId : - $this->requestIdProvider->getRequestId(); + $builder->requestId : + $this->requestIdProvider->getRequestId(); $requestParamFields = new RequestParamFields(); $requestParamFields->setParams($builder); - + $requestTransactionFields = new RequestTransactionFields(); $requestTransactionFields->setParams($builder); - + $transactionType = $this->mapTransactionType($builder->transactionType); + return $this->doTransaction( $transactionType, $requestId, @@ -113,36 +114,40 @@ private function mapTransactionType($type, $requestToken = null) return UpaMessageId::CARD_VERIFY; case TransactionType::REVERSAL: return UpaMessageId::REVERSAL; + case TransactionType::AUTH: + return UpaMessageId::PRE_AUTH; + case TransactionType::CAPTURE: + return UpaMessageId::CAPTURE; + case TransactionType::TOKENIZE: + return UpaMessageId::TOKENIZE; default: throw new UnsupportedTransactionException( 'The selected gateway does not support this transaction type.' ); } } - + private function doTransaction( $requestType, $requestId, RequestParamFields $requestParamFields = null, RequestTransactionFields $requestTransactionFields = null ) { - + $data = []; - if (!is_null($requestParamFields) && !empty($requestParamFields->getElementString())) { $data['params'] = $requestParamFields->getElementString(); } - + if (!is_null($requestTransactionFields) && !empty($requestTransactionFields->getElementString())) { $data['transaction'] = $requestTransactionFields->getElementString(); } - + $message = TerminalUtils::buildUPAMessage($requestType, $requestId, $data); - $response = $this->send($message, $requestType); return new UpaDeviceResponse($response, $requestType); } - + public function processReport($builder) { return false; diff --git a/src/Terminals/UPA/UpaInterface.php b/src/Terminals/UPA/UpaInterface.php index 76656fe9..e272397d 100644 --- a/src/Terminals/UPA/UpaInterface.php +++ b/src/Terminals/UPA/UpaInterface.php @@ -13,6 +13,7 @@ use GlobalPayments\Api\Entities\Exceptions\UnsupportedTransactionException; use GlobalPayments\Api\Entities\Exceptions\ApiException; use GlobalPayments\Api\Terminals\UPA\Responses\UpaBatchReport; +use GlobalPayments\Api\Terminals\UPA\Responses\UpaReportHandler; /** * Heartland payment application implementation of device messages @@ -72,12 +73,14 @@ public function closeLane() public function creditAuth($amount = null) { - throw new UnsupportedTransactionException(''); + return (new TerminalAuthBuilder(TransactionType::AUTH, PaymentMethodType::CREDIT)) + ->withAmount($amount); } public function creditCapture($amount = null) { - throw new UnsupportedTransactionException(''); + return (new UpaTerminalManageBuilder(TransactionType::CAPTURE, PaymentMethodType::CREDIT)) + ->withAmount($amount); } public function creditRefund($amount = null) @@ -113,6 +116,11 @@ public function creditTipAdjust($tipAmount = null) ->withGratuity($tipAmount); } + public function creditToken() + { + return (new TerminalAuthBuilder(TransactionType::TOKENIZE, PaymentMethodType::CREDIT)); + } + public function debitRefund($amount = null) { return (new TerminalAuthBuilder(TransactionType::REFUND, PaymentMethodType::DEBIT)) @@ -310,5 +318,17 @@ public function reset() throw new UnsupportedTransactionException(''); } + public function getOpenTabDetails() + { + $message = TerminalUtils::buildUPAMessage( + UpaMessageId::GET_OPEN_TAB_DETAILS, + $this->upaController->requestIdProvider->getRequestId() + ); + + $rawResponse = $this->upaController->send($message, UpaMessageId::GET_OPEN_TAB_DETAILS); + return new UpaReportHandler($rawResponse, UpaMessageId::GET_OPEN_TAB_DETAILS); + } + + #endregion } diff --git a/test/Integration/Gateways/Terminals/UPA/UpaBatchTests.php b/test/Integration/Gateways/Terminals/UPA/UpaBatchTests.php index 3436e0c3..29d36d77 100644 --- a/test/Integration/Gateways/Terminals/UPA/UpaBatchTests.php +++ b/test/Integration/Gateways/Terminals/UPA/UpaBatchTests.php @@ -28,7 +28,7 @@ public function tearDown() protected function getConfig() { $config = new ConnectionConfig(); - $config->ipAddress = '192.168.47.79'; + $config->ipAddress = '192.168.213.79'; $config->port = '8081'; $config->deviceType = DeviceType::UPA_SATURN_1000; $config->connectionMode = ConnectionModes::TCP_IP; @@ -54,4 +54,23 @@ public function testBatchClose() $this->assertNotNull($response->batchSummary); $this->assertNotNull($response->batchTransactions); } + + public function testGetOpenTabDetails() + { + $response = $this->device->getOpenTabDetails(); + + $this->assertNotNull($response); + $this->assertEquals("00", $response->deviceResponseCode); + $this->assertNotNull($response->reportRecords); + + foreach ($response->reportRecords as $transaction) { + $captureResponse = $this->device->creditCapture($transaction['authorizedAmount']) + ->withTransactionId($transaction['referenceNumber']) + ->execute(); + + $this->assertNotNull($captureResponse); + $this->assertEquals('00', $captureResponse->deviceResponseCode); + $this->assertNotNull($captureResponse->transactionId); + } + } } diff --git a/test/Integration/Gateways/Terminals/UPA/UpaCreditTests.php b/test/Integration/Gateways/Terminals/UPA/UpaCreditTests.php index 9bcc3278..5ab960ca 100644 --- a/test/Integration/Gateways/Terminals/UPA/UpaCreditTests.php +++ b/test/Integration/Gateways/Terminals/UPA/UpaCreditTests.php @@ -9,7 +9,8 @@ use PHPUnit\Framework\TestCase; use GlobalPayments\Api\Tests\Integration\Gateways\Terminals\RequestIdProvider; use GlobalPayments\Api\Tests\Integration\Gateways\Terminals\LogManagement; -use GlobalPayments\Api\PaymentMethods\CreditCardData; +use GlobalPayments\Api\Entities\AutoSubstantiation; +use GlobalPayments\Api\Entities\Enums\StoredCredentialInitiator; class UpaCreditTests extends TestCase { @@ -20,7 +21,7 @@ public function setup() { $this->device = DeviceService::create($this->getConfig()); } - + public function tearDown() { sleep(3); @@ -29,7 +30,7 @@ public function tearDown() protected function getConfig() { $config = new ConnectionConfig(); - $config->ipAddress = '192.168.221.79'; + $config->ipAddress = '192.168.213.79'; $config->port = '8081'; $config->deviceType = DeviceType::UPA_SATURN_1000; $config->connectionMode = ConnectionModes::TCP_IP; @@ -39,30 +40,30 @@ protected function getConfig() return $config; } - + public function testCreditSaleSwipe() { $response = $this->device->creditSale(10) - ->withAllowDuplicates(1) - ->execute(); - + ->withAllowDuplicates(1) + ->execute(); + $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); } - - + + /* * Note: EMV cards needs to be used for this test case */ public function testCreditSaleEMV() { $response = $this->device->creditSale(10) - ->withAllowDuplicates(1) - ->execute(); - + ->withAllowDuplicates(1) + ->execute(); + $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); - + //EMV $this->assertNotNull($response->applicationPreferredName); $this->assertNotNull($response->applicationLabel); @@ -72,29 +73,29 @@ public function testCreditSaleEMV() $this->assertNotNull($response->customerVerificationMethod); $this->assertNotNull($response->terminalVerificationResults); } - + public function testCreditVoid() { $response = $this->device->creditSale(10) ->execute(); - + $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); $this->assertNotNull($response->terminalRefNumber); - + $refundResponse = $this->device->creditVoid() ->withTerminalRefNumber($response->terminalRefNumber) ->execute(); - + $this->assertNotNull($refundResponse); $this->assertEquals('00', $refundResponse->deviceResponseCode); } - + public function testSaleRefund() { $refundResponse = $this->device->creditRefund(10) - ->execute(); - + ->execute(); + $this->assertNotNull($refundResponse); $this->assertEquals('00', $refundResponse->deviceResponseCode); } @@ -102,53 +103,137 @@ public function testSaleRefund() public function testCreditTipAdjust() { $response = $this->device->creditSale(10) - ->execute(); - + ->execute(); + $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); - + $adjust = $this->device->creditTipAdjust(1.05) - ->withTerminalRefNumber($response->terminalRefNumber) - ->execute(); - + ->withTerminalRefNumber($response->terminalRefNumber) + ->execute(); + $this->assertNotNull($adjust); $this->assertEquals('00', $adjust->deviceResponseCode); } - + public function testCardVerify() { $response = $this->device->creditVerify() - ->withClerkId(1234) + ->withClerkId(1234) + ->execute(); + + $this->assertNotNull($response); + $this->assertEquals('00', $response->deviceResponseCode); + } + + public function testSaleReversal() + { + $response = $this->device->creditSale(10) + ->execute(); + + $this->assertNotNull($response); + $this->assertEquals('00', $response->deviceResponseCode); + + $refundResponse = $this->device->creditReversal() + ->withTerminalRefNumber($response->terminalRefNumber) + ->execute(); + + $this->assertNotNull($refundResponse); + $this->assertEquals('00', $refundResponse->deviceResponseCode); + } + + public function testVerifyWithTokenRequest() + { + $response = $this->device->creditVerify() + ->withRequestMultiUseToken(1) + ->withCardOnFileIndicator(StoredCredentialInitiator::MERCHANT) + ->execute(); + + $this->assertNotNull($response); + $this->assertEquals('00', $response->deviceResponseCode); + $this->assertNotNull($response->token); + } + + public function testPreAuth() + { + $response = $this->device->creditAuth(10) + ->withAllowDuplicates(1) ->execute(); - + $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); + + $this->assertNotNull($response->transactionId); + + $captureResponse = $this->device->creditCapture(10) + ->withTransactionId($response->transactionId) + ->execute(); + + $this->assertNotNull($captureResponse); + $this->assertEquals('00', $captureResponse->deviceResponseCode); + $this->assertNotNull($captureResponse->transactionId); } - public function testSaleReversal() + public function testHealthCareCardSale() { + $autoSubAmounts = new AutoSubstantiation(); + $autoSubAmounts->realTimeSubstantiation = true; + $autoSubAmounts->setDentalSubTotal(5.00); + $autoSubAmounts->setClinicSubTotal(5); + $autoSubAmounts->setVisionSubTotal(5); + $response = $this->device->creditSale(10) + ->withAllowDuplicates(1) + ->withAutoSubstantiation($autoSubAmounts) + ->execute(); + + $this->assertNotNull($response); + $this->assertEquals('00', $response->deviceResponseCode); + } + + public function testCreditTokenRequest() + { + $response = $this->device->creditToken() + ->withCardOnFileIndicator(StoredCredentialInitiator::MERCHANT) ->execute(); $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); + $this->assertNotNull($response->token); - $refundResponse = $this->device->creditReversal() - ->withTerminalRefNumber($response->terminalRefNumber) + $saleResponse = $this->device->creditSale(10) + ->withToken($response->token) ->execute(); - $this->assertNotNull($refundResponse); - $this->assertEquals('00', $refundResponse->deviceResponseCode); + $this->assertNotNull($saleResponse); + $this->assertEquals('00', $saleResponse->deviceResponseCode); } - public function testVerifyWithTokenRequest() + public function testCardVerifyTokenSale() { $response = $this->device->creditVerify() ->withRequestMultiUseToken(1) + ->withCardOnFileIndicator(StoredCredentialInitiator::MERCHANT) ->execute(); $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); $this->assertNotNull($response->token); + $this->assertNotNull($response->cardBrandTransId); + + $autoSubAmounts = new AutoSubstantiation(); + $autoSubAmounts->realTimeSubstantiation = true; + $autoSubAmounts->setDentalSubTotal(5.00); + $autoSubAmounts->setClinicSubTotal(5); + $autoSubAmounts->setVisionSubTotal(5); + + $saleResponse = $this->device->creditSale(100) + ->withToken($response->token) + ->withCardOnFileIndicator(StoredCredentialInitiator::MERCHANT) + ->withAutoSubstantiation($autoSubAmounts) + ->execute(); + + $this->assertNotNull($saleResponse); + $this->assertEquals('00', $saleResponse->deviceResponseCode); } } diff --git a/test/Integration/Gateways/Terminals/UPA/vrf/UpaVerificationTests.php b/test/Integration/Gateways/Terminals/UPA/vrf/UpaVerificationTests.php index b424ea01..4d2106d6 100644 --- a/test/Integration/Gateways/Terminals/UPA/vrf/UpaVerificationTests.php +++ b/test/Integration/Gateways/Terminals/UPA/vrf/UpaVerificationTests.php @@ -3,13 +3,13 @@ use GlobalPayments\Api\Terminals\ConnectionConfig; use GlobalPayments\Api\Terminals\Enums\ConnectionModes; -use GlobalPayments\Api\Terminals\Enums\CurrencyType; use GlobalPayments\Api\Terminals\Enums\DeviceType; use GlobalPayments\Api\Services\DeviceService; use PHPUnit\Framework\TestCase; use GlobalPayments\Api\Tests\Integration\Gateways\Terminals\RequestIdProvider; -use GlobalPayments\Api\PaymentMethods\CreditCardData; +use GlobalPayments\Api\Entities\Enums\StoredCredentialInitiator; use GlobalPayments\Api\Tests\Integration\Gateways\Terminals\LogManagement; +use GlobalPayments\Api\Entities\AutoSubstantiation; class UpaVerificationTests extends TestCase { @@ -30,13 +30,14 @@ public function tearDown() protected function getConfig() { $this->config = new ConnectionConfig(); - $this->config->ipAddress = '192.168.47.79'; + $this->config->ipAddress = '192.168.0.198'; $this->config->port = '8081'; - $this->config->deviceType = DeviceType::UPA_SATURN_1000; + $this->config->deviceType = DeviceType::UPA_VERIFONE_T650P; $this->config->connectionMode = ConnectionModes::TCP_IP; - $this->config->timeout = 30; + $this->config->timeout = 60; $this->config->requestIdProvider = new RequestIdProvider(); $this->config->logManagementProvider = new LogManagement(); + $this->config->logManagementProvider->logLocation = 'upavrf.log'; return $this->config; } @@ -69,25 +70,19 @@ private function printReceipt($response, $message = '') $this->config->logManagementProvider->setLog($log); } - /* - TEST CASE 1 - EMV Contact Sale with Offline PIN - Objective - 1.Process an EMV contact sale with offline PIN. - Test Card - Card #1 EMV MasterCard w Offline PIN - Procedure - 1.Select Sale function for an amount of $4.00. - a.Insert Test Card #1 and select application if prompted. - - On CVM Kernel Terminal will prompt for PIN; enter 4315. - - On No CVM Kernel Terminal, No PIN Prompt will occur - b.Terminal will prompt for PIN; enter 4315. - c.Terminal will respond approved. - Pass Criteria - 1.Transaction must be approved. - 2.Receipt must conform to EMV Receipt Requirements (see pg 2). - */ + /** + * Objective Process an EMV contact sale with offline PIN. + * Test Card EMV Mastercard + * Procedure + * 1. Select Sale function for an amount of $4.00. + * a. Insert Test Card and select application if prompted. + * b. Terminal will respond approved. + * Pass Criteria + * 1. Transaction must be approved. Receipt must conform to EMV Receipt Requirements + * + */ - public function testCase01() + public function test001EMVContactSale() { $response = $this->device->creditSale(4) ->execute(); @@ -95,221 +90,507 @@ public function testCase01() $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); + //EMV + $this->assertNotNull($response->applicationPreferredName); + $this->assertNotNull($response->applicationLabel); + $this->assertNotNull($response->applicationId); + $this->assertNotNull($response->applicationCryptogramType); + $this->assertNotNull($response->applicationCryptogram); + $this->assertNotNull($response->customerVerificationMethod); + $this->assertNotNull($response->terminalVerificationResults); + $this->printReceipt($response, 'testCase01 creditSale'); } /* - TEST CASE 2 - Non EMV Swiped Sale - Objective - 1.Ensure application can handle non-EMV swiped transactions. - 2.Validate partial approval support. - Test Card - Card #4 Magnetic stripe Visa - Procedure - 1.Select sale function and swipe Test Card #4 for the amount of $7.00 - 2.Select sale function and swipe Test Card #4 for the amount of $155.00 - a.Receive an approved amount less than requested. - Pass Criteria - 1.Transactions must be approved online. - 2.For 2nd Credit Sale, provide: - Approved Amount: $ 100.00 - Issuer Response Code: 10 - 3.Receipt must conform to Mag Stripe Receipt Requirements (see pg 2). + * Objective Ensure application can handle non-EMV swiped transactions. + * Test Card Magnetic stripe Mastercard + * Procedure + * 1. Select Sale function and swipe for the amount of $7.00. + * a. Insert Test Card and select application if prompted. + * b. Terminal will respond approved. + * Pass Criteria + * 1. Transaction must be approved. Receipt must conform to non-EMV Receipt Requirements + * */ - public function testCase02() + public function test002MSRContactSale() { $response = $this->device->creditSale(7) ->execute(); - $this->printReceipt($response, 'testCase02 creditSale $7'); - $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); - - $response = $this->device->creditSale(155) + $this->printReceipt($response, 'test002MSRContactSale creditSale $7'); + + /** + * Objective Process an online void. + * Test Card MSD only Mastercard + * Procedure + * 1. Select Void function to remove the previous Sale of $7.00. + * a. Retrieve the Portico Gateway Software TxnId from Credit Sale + * in Test Case 2. + * Pass Criteria + * 1. Transaction successfully returns a voided response + * + */ + // test004TransactionVoid + $voidResponse = $this->device->creditVoid() + ->withTerminalRefNumber($response->terminalRefNumber) + ->execute(); + + $this->assertNotNull($voidResponse); + $this->assertEquals('00', $voidResponse->deviceResponseCode); + $this->printReceipt($voidResponse, 'creditVoid'); + } + + /** + * Objective Process a keyed sale, with PAN & exp date, along this Address Verification and Card + * Security Code to confirm the application can support any or all of these. + * Test Card Magnetic stripe Mastercard + * Procedure + * 1. Select Sale function and manually key for the amount of $118.00. + * a. Enter PAN & expiration date. + * b. Enter 321 for Card Security Code (CVV2, CID), if supporting this feature. Enter 76321 + * for AVS, if supporting this feature + * Pass Criteria + * 1. Transaction must be approved online. AVS Result Code: YCVV Result Code: M + * + */ + + public function test003ManualSale() + { + $response = $this->device->creditSale(118) ->execute(); - - $this->printReceipt($response, 'testCase02 creditSale $155'); - + + $this->assertNotNull($response); + $this->assertEquals('00', $response->deviceResponseCode); + $this->assertNotNull($response->terminalRefNumber); + $this->printReceipt($response, 'test003ManualSale creditSale'); + } + + /** + * Objective Ensure application can handle Partial Approval from our host. + * Test Card Magnetic stripe Mastercard + * Procedure + * 1. Select Sale function and swipe for the amount of $155.00. + * a. Insert Test Card and select application if prompted. + * b. Receive an approved amount less than requested. Finalize open ticket with remaining + * balance using a different card or tender. + * Pass Criteria + * 1. Transaction must be approved. Receipt must conform to non-EMV Receipt Requirements + * + */ + + public function test005PartialApproval() + { + $response = $this->device->creditSale(155) + ->execute(); + $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); $this->assertEquals('100', $response->transactionAmount); $this->assertEquals('10', $response->responseCode); + $this->printReceipt($response, 'test005PartialApproval creditSale $155'); } - - /* - TEST CASE 3 - Mag Stripe Online Void - Objective - Process an online void. - Test Card - Card #5 MSD only MasterCard - Procedure - 1.Select Void function to remove the previous Sale of $7.00. - a.Enter on the Portico Gateway software Txnld - (UPA HREF) from the 1st Credit Sale in Test Case 2 when prompted. - b.Select Credit, same as Test Case 2 - Pass Criteria - Transaction receives Gateway Response Code of 0, Issuer Response Code of 00. - */ - public function testCase03() + /** + * Objective Complete Sale request and then attempt a duplicate Sale transaction + * Test Card MSR credit card + * Procedure + * 1. Process a Credit Sale for $2.00 using any ECRRefNum + * 2. Reprocess the Credit Sale using same amount and the same ECRRefNum + * Pass Criteria + * 1. Provide Debug logs showing the two Credit Sales for $2.00. Both must to be using the same + * ECRRefNum. The Log should reflect the Credit Sale failure due to a duplicate transaction. + * + */ + + /** + * @expectedException GlobalPayments\Api\Entities\Exceptions\GatewayException + * @expectedExceptionMessage Unexpected Gateway Response: HOST001 - HOST ERROR + */ + + public function test006DuplicateTransaction() { - $response = $this->device->creditSale(7) - ->execute(); - - $this->printReceipt($response, 'testCase03 creditSale'); + $response = $this->device->creditSale(2) + ->withRequestId(22) + ->execute(); $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); - $this->assertNotNull($response->terminalRefNumber); - - $voidResponse = $this->device->creditVoid() - ->withTerminalRefNumber($response->terminalRefNumber) - ->execute(); - - $this->printReceipt($voidResponse, 'testCase03 creditVoid'); + $this->printReceipt($response, 'test006DuplicateTransaction creditSale $2'); - $this->assertNotNull($voidResponse); - $this->assertEquals('00', $voidResponse->deviceResponseCode); + $response = $this->device->creditSale(2) + ->withRequestId(22) + ->execute(); + + $this->assertNotNull($response); + $this->assertEquals('2', $response->deviceResponseCode); + $this->printReceipt($response, 'test006DuplicateTransaction creditSale $2'); // if cancelled via device prompt } - - /* - * CONDITIONAL TEST CASE 8 Credit Return - Objective - Confirm support of a Return transaction for credit/debit using the HREF or GatewayTxnID. - Test Card - Card #4 Magnetic stripe Visa - Procedure - 1.Select sale function for the amount of $4.00 - 2.Swipe or Key Test card #4 through the MSR, record the HREF - 3.Select Refund function to refund the previous sale of $4.00, use the HREF from the previous sale - Pass Criteria - 1.Transaction must be approved using the HREF. - * + /** + * Objective Confirm support of a Return transaction for credit/debit using the gateway TxnId + * Test Card Magnetic stripe Visa + * Procedure + * 1. Select sale function for the amount of $4.00 + * 2. Swipe or key test card #4 through the MSR, record the TxnId + * 3. Select Refund function to refund the previous sale of $4.00, use the TxnId from the previous sale + * Pass Criteria + * 1. Transaction must be approved using the TxnId + * */ - public function testCase08() + public function test007CreditReturn() { $response = $this->device->creditSale(4) ->withAllowDuplicates(1) ->execute(); - $this->printReceipt($response, 'testCase08 creditSale $4'); - $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); $this->assertNotNull($response->terminalRefNumber); + $this->printReceipt($response, 'test007CreditReturn creditSale $4'); $refundResponse = $this->device->creditRefund(4) + ->withTransactionId($response->transactionId) ->execute(); - $this->printReceipt($refundResponse, 'testCase08 creditRefund $4'); - $this->assertNotNull($refundResponse); $this->assertEquals('00', $refundResponse->deviceResponseCode); + $this->printReceipt($refundResponse, 'test007CreditReturn creditRefund $4'); } - - /* - * CONDITIONAL TEST CASE 9 EMV PIN Debit Sale/ Swiped MSR Debit Sale - Objective - Confirm support of PIN Debit sale - Test Card - Card #4 EMV MasterCard w/ Offline PIN & Magnetic stripe Visa - Procedure - 1.Select sale function for the amount of $10.00. - a.Insert EMV Test Card (For this test case you will need to use your own EMV PIN Debit Card) - b.Select Debit on the card type prompt. - c.Enter PIN of 1234 when pad prompts for it, record the HREF. - 2.Select sale function for the amount of $11.00. - a.Swipe Test Card #4 - b.Select Debit on the card type prompt. - c.Enter PIN of 1234 when pad prompts for it. - Pass Criteria - 1. Transaction must be approved online. Logs must be provided reflecting this transaction. - Provide 1st Inserted EMV Debit Sale:Host Reference Number:2nd Swiped Debit Sale: + /** + * Objective Complete Token request and then use that token for a Sale transaction + * Test Card MSR credit card + * Procedure + * 1. Perform a Verify transaction + * a. Review the response back from our host and locate the token value that is returned. + * Store this within your localized token value and be able to retrieve it for the next + * transaction + * 2. Perform a Sale transaction + * a. Use the token value that you received and process a transaction for $15.01 + * Pass Criteria + * 1. TokenValue returned in response + * 2. Transaction #2 receives response code of 00 + * */ - public function testCase09() + public function test008TokenPayment() { - $response = $this->device->debitSale(10) - ->withAllowDuplicates(1) + $response = $this->device->creditVerify() + ->withRequestMultiUseToken(1) + ->withCardOnFileIndicator(StoredCredentialInitiator::MERCHANT) ->execute(); - $this->printReceipt($response, 'testCase09 debitSale $10'); - $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); + $this->assertNotNull($response->token); + $this->assertNotNull($response->cardBrandTransId); + $this->printReceipt($response, 'test008TokenPayment creditVerify'); - $response = $this->device->debitSale(11) - ->withAllowDuplicates(1) + $saleResponse = $this->device->creditSale(15.01) + ->withToken($response->token) + ->withCardOnFileIndicator(StoredCredentialInitiator::MERCHANT) + ->withCardBrandTransId($response->cardBrandTransId) ->execute(); - $this->printReceipt($response, 'testCase09 debitSale $11'); + $this->assertNotNull($saleResponse); + $this->assertEquals('00', $saleResponse->deviceResponseCode); + $this->printReceipt($response, 'test008TokenPayment creditSale'); + } + + + /** + * Objective Confirm support of EMV PIN Debit sale + * Test Card EMV PIN Debit Card (not provided by Heartland) + * Procedure + * 1. Select Sale function and Select Debit for the card type OR select DEBIT function. For the test + * amount, use $10.00 + * Pass Criteria + * 1. Transaction must be approved online + * + */ + + public function test009DebitSale() + { + $response = $this->device->debitSale(10) + ->withAllowDuplicates(1) + ->execute(); $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); + $this->printReceipt($response, 'test009DebitSale debitSale $10'); } - /* - * CONDITIONAL TEST CASE 11 Tip Adjustment - Objective - Complete Sale with Tip Adjustment - Pick One Gratuity Approach: - 1) CREDIT AUTH + CREDIT POSTAUTH (Portico CreditAddToBatch) - 2) CREDIT SALE + CREDIT ADJUST (Portico CreditTxnEdit) - Test Card - Card #5 MSD only MasterCard (AVS required) - Procedure - 1.Select SALE function and swipe Card #5 for the amount of $15.12 - 2.Add a $3.00 tip at Settlement. - Pass Criteria - 1.Transaction must be approved. Using HREF. - 2.Adjusted Tip: - Approved Amount: $18.12 - * + /** + * Objective Complete Sale with Tip Adjustment + * Pick One Gratuity Approach + * 1. Credit Auth + Credit Capture + * 2. Credit Sale + Tip Adjust // this one + * Test Card Mastercard + * Procedure + * 1. Select Sale function and process for the amount of $15.12 + * 2. Add a $3.00 tip at settlement + * Pass Criteria + * 1. Transaction must be approved. + * + * Note - Confirmed there is a bug in V1.30 regarding how the tip adjust amount is handled; that amount + * isn't correctly added to the total transaction amount; earlier software versions did not have this bug + * */ - public function testCase11() + public function test010aAdjustment() { $response = $this->device->creditSale(15.12) ->execute(); - $this->printReceipt($response, 'testCase11 Tip Sale'); - $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); + $this->printReceipt($response, 'test010aAdjustment Tip Sale'); $response = $this->device->creditTipAdjust(3) ->withTerminalRefNumber($response->terminalRefNumber) ->execute(); - $this->printReceipt($response, 'testCase11 Tip Adjust'); + $this->assertNotNull($response); + $this->assertEquals('00', $response->deviceResponseCode); + $this->printReceipt($response, 'test010aAdjustment Tip Adjust'); + + /* Note - Confirmed there is a bug in V1.30 regarding how the tip adjust amount is handled; that amount + * isn't correctly added to the total transaction amount; earlier software versions did not have this bug + */ + //$this->assertEquals('18.12', $response->transactionAmount); + + } + + /** + * Objective Complete Sale with Tip Adjustment + * Pick One Gratuity Approach + * 1. Credit Auth + Credit Capture // this one + * 2. Credit Sale + Tip Adjust + * Test Card Mastercard + * Procedure + * 1. Select Sale function and process for the amount of $15.12 + * 2. Add a $3.00 tip at settlement + * Pass Criteria + * 1. Transaction must be approved. + * + */ + public function test010bAuthCapture() + { + $authResponse = $this->device->creditAuth(15.12) + ->withAllowDuplicates(1) + ->execute(); + + $this->assertNotNull($authResponse); + $this->assertEquals('00', $authResponse->deviceResponseCode); + $this->assertNotNull($authResponse->transactionId); + $this->printReceipt($authResponse, 'test010bAuthCapture Auth'); + + $captureResponse = $this->device->creditCapture(18.12) + ->withTransactionId($authResponse->transactionId) + ->execute(); + + $this->assertNotNull($captureResponse); + $this->assertEquals('00', $captureResponse->deviceResponseCode); + $this->assertNotNull($captureResponse->transactionId); + $this->printReceipt($authResponse, 'test010bAuthCapture Capture'); + } + + /** + * Objective Transactions: Gift Balance Inquiry, Gift Load, Gift Sale/Redeem, Gift Replace + * Test Card Heartland Test Gift Cards + * Procedure + * 1. Gift Balance Inquiry + * a. Should respond with a balance amount of $10 + * 2. Gift Add Value + * a. Initiate a load and swipe + * b. Enter $8.00 as the amount + * 3. Gift Sale + * a. Initiate a Sale and swipe + * b. Enter $1.00 as the amount + * 4. Gift card replace + * a. Initiate a gift card replace + * Pass Criteria + * 1. All transactions must be approved. + * + */ + public function test011GiftCard() + { + } + + /** + * Objective Transactions: Food Stamp Purchase, Food Stamp Return, Food Stamp Balance Inquiry + * Test Card MSD only Visa + * Procedure + * 1. Food Stamp Purchase + * a. Initiate an EBT Sale and swipe + * b. Select EBT Food Stamp if prompted + * c. Enter $101.01 as the amount + * 2. Food Stamp Return + * a. Initiate an EBT return and manually enter + * b. Select EBT Food Stamp if prompted + * c. Enter $104.01 as the amount + * 4. Food Stamp Balance Inquiry + * a. Initiate an EBT balance inquiry transaction + * Pass Criteria + * 1. All transactions must be approved. + * + */ + public function test012EBT() + { + } + + /** + * Objective Transactions: Food Stamp Purchase, Food Stamp Return, Food Stamp Balance Inquiry + * Test Card MSD only Visa + * Procedure + * 1. Food Stamp Purchase + * a. Initiate an EBT Sale and swipe + * b. Select EBT Food Stamp if prompted + * c. Enter $101.01 as the amount + * 2. Food Stamp Return + * a. Initiate an EBT return and manually enter + * b. Select EBT Food Stamp if prompted + * c. Enter $104.01 as the amount + * 3. Food Stamp Balance Inquiry + * a. Initiate an EBT balance inquiry transaction + * Pass Criteria + * 1. All transactions must be approved. + * + */ + public function test013EBTCash() + { + } + + /** + * Objective Send extended healthcare (Rx, Vision, Dental, Clinical) + * Test Card Visa + * Procedure + * 1. Process a Sale for $100.00, with $50 being qualified for healthcare. Choose any of the groups + * (Rx, Vision, Dental, Clinical) + * Pass Criteria + * 1. Transaction must be approved online + * + */ + public function test014Healthcare() + { + $autoSubAmounts = new AutoSubstantiation(); + $autoSubAmounts->setPrescriptionSubTotal(12.50); + $autoSubAmounts->setDentalSubTotal(12.50); + $autoSubAmounts->setVisionSubTotal(12.50); + + $response = $this->device->creditSale(100) + ->withAllowDuplicates(1) + ->withAutoSubstantiation($autoSubAmounts) + ->execute(); $this->assertNotNull($response); $this->assertEquals('00', $response->deviceResponseCode); - $this->assertEquals('18.12', $response->transactionAmount); } - /* - CONDITIONAL TEST CASE 19 Batch Close - (Mandatory if Conditional Test Cases are ran) - Objective - Close the batch, ensuring all approved transactions (offline or online) are settled. - Integrators are automatically provided accounts with auto-close enabled, so if manual batch transmission will - not be performed in the production environment then it does not need to be tested. - Test Card - N/A - Procedure - Initiate a Batch Close command - Pass Criteria - Batch submission must be successful. - * + /** + * Objective Process the 3 types of Corporate Card transactions: No Tax, Tax Amount, and Tax + * Exempt, including the passing of PO Number + * Test Card Magnetic stripe Visa + * Procedure + * 1. Select Sale function for the amount of $112.34 + * a. Receive CPC Indicator of B + * b. Continue with CPC Edit transaction to account for Tax Type of Not Used + * c. Enter the PO Number of 98765432101234567 on the device + * 2. Select Sale function for the amount of $123.45 + * a. Receive CPC Indicator of R + * b. Continue with CPC Edit transaction to account for Tax Type of Sales Tax, Tax Amount for $1.00 + * 3. Select Sale function for the amount of $134.56 + * a. Receive CPC Indicator of S + * b. Continue with CPC Edit transaction to account for Tax Type of Tax Exempt + * c. Enter the PO Number of 98765432101234567 on the device + * Pass Criteria + * 1. Transactions must be approved online + * + * note - Lvl2 doesn't seem to be fully supported as of V1.30 + */ + public function test015Level2() + { + $response = $this->device->creditSale(112.34) + ->withAllowDuplicates(1) + ->execute(); + } + + /** + * Objective Process credit sale in Store and Forward, upload transaction, close batch + * Test Card EMV Visa + * Procedure + * 1. Select Sale function for an amount of $4.00 + * a. Response approved + * 2. Send SAF command + * a. SAF Indicator = 2 + * b. Result OK + * 3. Initiate a Batch Close + * Pass Criteria + * 1. Transaction must approve in SAF and settles in a batch + * + */ + public function test016StoreAndForwardWithApproval() + { + } + + /** + * Objective Process credit sale in Store and Forward, upload transaction, delete declined + * transaction from terminal + * Procedure + * 1. Select Sale function for an amount of $10.25 + * a. Response approved + * 2. Send SAF command + * a. SAF Indicator = 2 + * b. Transaction will decline + * 3. Perform delete SAF file + * a. SAF Indicator = 2 + * Pass Criteria + * 1. Transaction must approve in SAF and settles in a batch + * + */ + public function test017StoreAndForwardWithDecline() + { + } + + /** + * Objective Apply a surcharge to a transaction. You will need to make sure that you have worked with + * the Heartland team to set a surcharge amount for all qualifying transactions. + * Test Card EMV Mastercard // I used and configured EMV Amex for surcharge + * Procedure + * 1. Process a Credit Sale transaction for $50.00 with a 3.5% surcharge + * Pass Criteria + * 1. Printed receipt shows that a surcharge was added to the total amount and that the total amount + * processed matches the principle amount plus the surcharge + * + * Tony note: current device programming doesn't seem to be setup for Surcharging; I tried configuring for + * Surcharging in the Device Manager, but it did not work * + * + */ + public function test018Surcharge() + { + $response = $this->device->creditSale(50) + ->execute(); + } + + + /** + * Objective Close the batch, ensuring all approved transactions (offline or online) are settled. + * Integrators are automatically provided accounts with auto-close enabled, so if manual batch transmission + * will not be performed in the production environment, it does not need to be tested. + * Test Card N/A + * Procedure + * 1. Initiate a Batch Close request + * Pass Criteria + * 1. Batch submission must be successful + * */ - public function testCase19() + public function test019BatchClose() { $response = $this->device->batchClose();