diff --git a/.gitattributes b/.gitattributes index 8ee9ef4..6e65161 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ /*.* export-ignore +/tests export-ignore diff --git a/.gitignore b/.gitignore index e69de29..97b5c90 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,5 @@ +/.phpcs-cache +/phpcs.xml +/phpstan.neon +/phpunit.xml +/vendor/ diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..2da96da --- /dev/null +++ b/.travis.yml @@ -0,0 +1,42 @@ +language: php + +php: 7.3 + +before_install: + - phpenv config-rm xdebug.ini || true + +install: + - travis_retry composer install --classmap-authoritative --no-suggest --prefer-dist + +jobs: + include: + + - stage: Test + name: Tests + script: + - vendor/bin/phpunit + + - stage: Code Quality + name: Coding standards + script: + - vendor/bin/phpcs -p + + - stage: Code Quality + name: Static analysis + script: + - vendor/bin/phpstan analyse + +stages: + - Test + - name: Code Quality + if: type = pull_request + +cache: + directories: + - $HOME/.composer/cache/files + +if: | + branch = master OR \ + branch =~ /^(?:[0-9]|[1-9][0-9]*)\.(?:[0-9]|[1-9][0-9]*)$/ OR \ + tag IS present OR \ + type = pull_request diff --git a/README.md b/README.md index 80edde6..218e576 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,23 @@ Libero JATS support =================== +[![Build Status](https://travis-ci.com/libero/jats-support.svg?branch=master)](https://travis-ci.com/libero/jats-support) + +The library contains [Schematron](http://schematron.com/) that can be applied to any [Journal Article Tag Suite + (JATS)](https://jats.nlm.nih.gov/) document to check for native support in [Libero](https://libero.pub). + +It uses [XSLT 1.0](https://www.w3.org/TR/1999/REC-xslt-19991116) so that it is compatible with +[libxslt](http://xmlsoft.org/XSLT/intro.html), and so natively supported by languages such as PHP and Python. + +Getting started +--------------- + +Apply [`src/support.sch`](src/support.sch) to your document, using, for example: + +- [Oxygen XML Editor](https://www.oxygenxml.com/demo/Schematron_Validation.html) +- [XML Validator library](https://github.com/libero/xml-validator) (PHP) +- [lxml](https://lxml.de/validation.html#id2) (Python) + Getting help ------------ diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..9269ad1 --- /dev/null +++ b/composer.json @@ -0,0 +1,43 @@ +{ + "type": "project", + "license": "MIT", + "autoload-dev": { + "psr-4": { + "tests\\Libero\\JatsSupport\\": "tests/" + } + }, + "require-dev": { + "php": "^7.3", + "ext-dom": "*", + "ext-xsl": "*", + "fluentdom/fluentdom": "^7.1", + "jats/schema": "^1.1", + "libero/coding-standard": "^0.4", + "libero/xml-validator": "^0.2", + "lstrojny/functional-php": "^1.9", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpunit/phpunit": "^8.0", + "symfony/finder": "^4.2" + }, + "config": { + "platform": { + "php": "7.3.0" + }, + "secure-http": false, + "sort-packages": true + }, + "repositories": [ + { + "type": "package", + "package": { + "name": "jats/schema", + "version": "1.1", + "dist": { + "url": "ftp://ftp.ncbi.nih.gov/pub/jats/archiving/1.1/rng/JATS-Archiving-1-1-MathML3-DTD-RNG.zip", + "type": "zip" + } + } + } + ] +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..7cdf07d --- /dev/null +++ b/composer.lock @@ -0,0 +1,3090 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "0151b1c8711617353dafd5cc582522b8", + "packages": [], + "packages-dev": [ + { + "name": "composer/xdebug-handler", + "version": "1.3.2", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "d17708133b6c276d6e42ef887a877866b909d892" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/d17708133b6c276d6e42ef887a877866b909d892", + "reference": "d17708133b6c276d6e42ef887a877866b909d892", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "time": "2019-01-28T20:25:53+00:00" + }, + { + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v0.5.0", + "source": { + "type": "git", + "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", + "reference": "e749410375ff6fb7a040a68878c656c2e610b132" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/e749410375ff6fb7a040a68878c656c2e610b132", + "reference": "e749410375ff6fb7a040a68878c656c2e610b132", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "php": "^5.3|^7", + "squizlabs/php_codesniffer": "^2|^3" + }, + "require-dev": { + "composer/composer": "*", + "phpcompatibility/php-compatibility": "^9.0", + "sensiolabs/security-checker": "^4.1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + }, + "autoload": { + "psr-4": { + "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "time": "2018-10-26T13:21:45+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "^6.2.3", + "squizlabs/php_codesniffer": "^3.0.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.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": "2017-07-22T11:58:36+00:00" + }, + { + "name": "fluentdom/fluentdom", + "version": "7.1.0", + "source": { + "type": "git", + "url": "https://github.com/ThomasWeinert/FluentDOM.git", + "reference": "91038715a02e50255a289c0532acd6adbfc30bde" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ThomasWeinert/FluentDOM/zipball/91038715a02e50255a289c0532acd6adbfc30bde", + "reference": "91038715a02e50255a289c0532acd6adbfc30bde", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=7.0" + }, + "suggest": { + "ext-json": "JSON support, needed for several loaders/serializers", + "ext-xmlreader": "XMLReader, XML pull parser, read large XMLs", + "ext-xmlwriter": "XMLWriter, Write large XMLs", + "fluentdom/css-selector": "Allows to use css selectors." + }, + "type": "library", + "autoload": { + "files": [ + "src/FluentDOM.php" + ], + "psr-4": { + "FluentDOM\\": "src/FluentDOM" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "FluentDOM Contributors", + "homepage": "https://github.com/FluentDOM/FluentDOM/contributors" + } + ], + "description": "A fluent api for the php dom extension.", + "homepage": "http://fluentdom.org", + "keywords": [ + "XMLReader", + "XMLWriter", + "Xpath", + "dom", + "jquery", + "xml" + ], + "time": "2018-11-11T13:47:41+00:00" + }, + { + "name": "jats/schema", + "version": "1.1.0", + "dist": { + "type": "zip", + "url": "ftp://ftp.ncbi.nih.gov/pub/jats/archiving/1.1/rng/JATS-Archiving-1-1-MathML3-DTD-RNG.zip" + }, + "type": "library" + }, + { + "name": "jean85/pretty-package-versions", + "version": "1.2", + "source": { + "type": "git", + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/75c7effcf3f77501d0e0caa75111aff4daa0dd48", + "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48", + "shasum": "" + }, + "require": { + "ocramius/package-versions": "^1.2.0", + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Jean85\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Lai", + "email": "alessandro.lai85@gmail.com" + } + ], + "description": "A wrapper for ocramius/package-versions to get pretty versions strings", + "keywords": [ + "composer", + "package", + "release", + "versions" + ], + "time": "2018-06-13T13:22:40+00:00" + }, + { + "name": "libero/coding-standard", + "version": "v0.4.0", + "source": { + "type": "git", + "url": "https://github.com/libero/php-coding-standard.git", + "reference": "0db1bcfa476391bdfe2f69027a62239be1fdc2f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/libero/php-coding-standard/zipball/0db1bcfa476391bdfe2f69027a62239be1fdc2f6", + "reference": "0db1bcfa476391bdfe2f69027a62239be1fdc2f6", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.4 || ^0.5", + "php": "^7.2", + "slevomat/coding-standard": "^5.0", + "squizlabs/php_codesniffer": "^3.4" + }, + "require-dev": { + "ext-mbstring": "*", + "ext-tokenizer": "*", + "lstrojny/functional-php": "^1.8", + "phpstan/phpstan": "^0.10", + "phpstan/phpstan-phpunit": "^0.10", + "phpunit/phpunit": "^7.3", + "symfony/finder": "^4.1" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Libero\\CodingStandard\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Libero PHP coding standard", + "time": "2019-02-19T09:51:33+00:00" + }, + { + "name": "libero/xml-validator", + "version": "v0.2.1", + "source": { + "type": "git", + "url": "https://github.com/libero/xml-validator.git", + "reference": "3280f3572b7eaf4c978bbccd6ddb7e94e30a8092" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/libero/xml-validator/zipball/3280f3572b7eaf4c978bbccd6ddb7e94e30a8092", + "reference": "3280f3572b7eaf4c978bbccd6ddb7e94e30a8092", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^7.2" + }, + "require-dev": { + "cpliakas/git-wrapper": "^2.0", + "ext-xsl": "*", + "libero/coding-standard": "^0.3", + "phpstan/phpstan": "^0.10", + "phpstan/phpstan-phpunit": "^0.10", + "phpunit/phpunit": "^7.2", + "symfony/filesystem": "^4.0" + }, + "suggest": { + "ext-xsl": "To use SchematronValidator" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Libero\\XmlValidator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "XML validator", + "time": "2019-03-06T13:35:14+00:00" + }, + { + "name": "lstrojny/functional-php", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/lstrojny/functional-php.git", + "reference": "f5b3b4424dcddb406d3dcfcae0d1bc0060099a78" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lstrojny/functional-php/zipball/f5b3b4424dcddb406d3dcfcae0d1bc0060099a78", + "reference": "f5b3b4424dcddb406d3dcfcae0d1bc0060099a78", + "shasum": "" + }, + "require": { + "php": "~7" + }, + "require-dev": { + "phpunit/phpunit": "~6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "Functional\\": "src/Functional" + }, + "files": [ + "src/Functional/Average.php", + "src/Functional/ButLast.php", + "src/Functional/Capture.php", + "src/Functional/ConstFunction.php", + "src/Functional/CompareOn.php", + "src/Functional/CompareObjectHashOn.php", + "src/Functional/Compose.php", + "src/Functional/Concat.php", + "src/Functional/Contains.php", + "src/Functional/Curry.php", + "src/Functional/CurryN.php", + "src/Functional/Difference.php", + "src/Functional/DropFirst.php", + "src/Functional/DropLast.php", + "src/Functional/Each.php", + "src/Functional/Equal.php", + "src/Functional/ErrorToException.php", + "src/Functional/Every.php", + "src/Functional/False.php", + "src/Functional/Falsy.php", + "src/Functional/Filter.php", + "src/Functional/First.php", + "src/Functional/FirstIndexOf.php", + "src/Functional/FlatMap.php", + "src/Functional/Flatten.php", + "src/Functional/Flip.php", + "src/Functional/GreaterThan.php", + "src/Functional/GreaterThanOrEqual.php", + "src/Functional/Group.php", + "src/Functional/Head.php", + "src/Functional/Id.php", + "src/Functional/IfElse.php", + "src/Functional/Identical.php", + "src/Functional/IndexesOf.php", + "src/Functional/Intersperse.php", + "src/Functional/Invoke.php", + "src/Functional/InvokeFirst.php", + "src/Functional/InvokeIf.php", + "src/Functional/InvokeLast.php", + "src/Functional/Invoker.php", + "src/Functional/Last.php", + "src/Functional/LastIndexOf.php", + "src/Functional/LessThan.php", + "src/Functional/LessThanOrEqual.php", + "src/Functional/LexicographicCompare.php", + "src/Functional/Map.php", + "src/Functional/Match.php", + "src/Functional/Maximum.php", + "src/Functional/Memoize.php", + "src/Functional/Minimum.php", + "src/Functional/None.php", + "src/Functional/Not.php", + "src/Functional/PartialAny.php", + "src/Functional/PartialLeft.php", + "src/Functional/PartialMethod.php", + "src/Functional/PartialRight.php", + "src/Functional/Partition.php", + "src/Functional/Pick.php", + "src/Functional/Pluck.php", + "src/Functional/Poll.php", + "src/Functional/Product.php", + "src/Functional/Ratio.php", + "src/Functional/ReduceLeft.php", + "src/Functional/ReduceRight.php", + "src/Functional/Reindex.php", + "src/Functional/Reject.php", + "src/Functional/Retry.php", + "src/Functional/Select.php", + "src/Functional/SelectKeys.php", + "src/Functional/SequenceConstant.php", + "src/Functional/SequenceExponential.php", + "src/Functional/SequenceLinear.php", + "src/Functional/Some.php", + "src/Functional/Sort.php", + "src/Functional/Sum.php", + "src/Functional/SuppressError.php", + "src/Functional/Tap.php", + "src/Functional/Tail.php", + "src/Functional/TailRecursion.php", + "src/Functional/True.php", + "src/Functional/Truthy.php", + "src/Functional/Unique.php", + "src/Functional/With.php", + "src/Functional/Zip.php", + "src/Functional/ZipAll.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Strojny", + "email": "lstrojny@php.net", + "homepage": "http://usrportage.de" + }, + { + "name": "Max Beutel", + "email": "nash12@gmail.com" + } + ], + "description": "Functional primitives for PHP", + "keywords": [ + "functional" + ], + "time": "2018-12-03T16:47:05+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.8.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2018-06-11T23:09:50+00:00" + }, + { + "name": "nette/bootstrap", + "version": "v2.4.6", + "source": { + "type": "git", + "url": "https://github.com/nette/bootstrap.git", + "reference": "268816e3f1bb7426c3a4ceec2bd38a036b532543" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/bootstrap/zipball/268816e3f1bb7426c3a4ceec2bd38a036b532543", + "reference": "268816e3f1bb7426c3a4ceec2bd38a036b532543", + "shasum": "" + }, + "require": { + "nette/di": "~2.4.7", + "nette/utils": "~2.4", + "php": ">=5.6.0" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "latte/latte": "~2.2", + "nette/application": "~2.3", + "nette/caching": "~2.3", + "nette/database": "~2.3", + "nette/forms": "~2.3", + "nette/http": "~2.4.0", + "nette/mail": "~2.3", + "nette/robot-loader": "^2.4.2 || ^3.0", + "nette/safe-stream": "~2.2", + "nette/security": "~2.3", + "nette/tester": "~2.0", + "tracy/tracy": "^2.4.1" + }, + "suggest": { + "nette/robot-loader": "to use Configurator::createRobotLoader()", + "tracy/tracy": "to use Configurator::enableTracy()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🅱 Nette Bootstrap: the simple way to configure and bootstrap your Nette application.", + "homepage": "https://nette.org", + "keywords": [ + "bootstrapping", + "configurator", + "nette" + ], + "time": "2018-05-17T12:52:20+00:00" + }, + { + "name": "nette/di", + "version": "v2.4.15", + "source": { + "type": "git", + "url": "https://github.com/nette/di.git", + "reference": "d0561b8f77e8ef2ed6d83328860e16c81a5a8649" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/di/zipball/d0561b8f77e8ef2ed6d83328860e16c81a5a8649", + "reference": "d0561b8f77e8ef2ed6d83328860e16c81a5a8649", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "nette/neon": "^2.3.3 || ~3.0.0", + "nette/php-generator": "^2.6.1 || ^3.0.0", + "nette/utils": "^2.5.0 || ~3.0.0", + "php": ">=5.6.0" + }, + "conflict": { + "nette/bootstrap": "<2.4", + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP 7.1 features.", + "homepage": "https://nette.org", + "keywords": [ + "compiled", + "di", + "dic", + "factory", + "ioc", + "nette", + "static" + ], + "time": "2019-01-30T13:26:05+00:00" + }, + { + "name": "nette/finder", + "version": "v2.4.2", + "source": { + "type": "git", + "url": "https://github.com/nette/finder.git", + "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/finder/zipball/ee951a656cb8ac622e5dd33474a01fd2470505a0", + "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0", + "shasum": "" + }, + "require": { + "nette/utils": "~2.4", + "php": ">=5.6.0" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "~2.0", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🔍 Nette Finder: find files and directories with an intuitive API.", + "homepage": "https://nette.org", + "keywords": [ + "filesystem", + "glob", + "iterator", + "nette" + ], + "time": "2018-06-28T11:49:23+00:00" + }, + { + "name": "nette/neon", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/nette/neon.git", + "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/neon/zipball/cbff32059cbdd8720deccf9e9eace6ee516f02eb", + "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "ext-json": "*", + "php": ">=7.0" + }, + "require-dev": { + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🍸 Nette NEON: encodes and decodes NEON file format.", + "homepage": "http://ne-on.org", + "keywords": [ + "export", + "import", + "neon", + "nette", + "yaml" + ], + "time": "2019-02-05T21:30:40+00:00" + }, + { + "name": "nette/php-generator", + "version": "v3.2.1", + "source": { + "type": "git", + "url": "https://github.com/nette/php-generator.git", + "reference": "9de4e093a130f7a1bd175198799ebc0efbac6924" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/php-generator/zipball/9de4e093a130f7a1bd175198799ebc0efbac6924", + "reference": "9de4e093a130f7a1bd175198799ebc0efbac6924", + "shasum": "" + }, + "require": { + "nette/utils": "^2.4.2 || ~3.0.0", + "php": ">=7.1" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.3 features.", + "homepage": "https://nette.org", + "keywords": [ + "code", + "nette", + "php", + "scaffolding" + ], + "time": "2018-11-27T19:00:14+00:00" + }, + { + "name": "nette/robot-loader", + "version": "v3.1.0", + "source": { + "type": "git", + "url": "https://github.com/nette/robot-loader.git", + "reference": "fc76c70e740b10f091e502b2e393d0be912f38d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/fc76c70e740b10f091e502b2e393d0be912f38d4", + "reference": "fc76c70e740b10f091e502b2e393d0be912f38d4", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "nette/finder": "^2.3 || ^3.0", + "nette/utils": "^2.4 || ^3.0", + "php": ">=5.6.0" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", + "homepage": "https://nette.org", + "keywords": [ + "autoload", + "class", + "interface", + "nette", + "trait" + ], + "time": "2018-08-13T14:19:06+00:00" + }, + { + "name": "nette/utils", + "version": "v2.5.3", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "17b9f76f2abd0c943adfb556e56f2165460b15ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/17b9f76f2abd0c943adfb556e56f2165460b15ce", + "reference": "17b9f76f2abd0c943adfb556e56f2165460b15ce", + "shasum": "" + }, + "require": { + "php": ">=5.6.0" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "~2.0", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize() and toAscii()", + "ext-intl": "for script transliteration in Strings::webalize() and toAscii()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ], + "files": [ + "src/loader.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "time": "2018-09-18T10:22:16+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.2.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "5221f49a608808c1e4d436df32884cbc1b821ac0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/5221f49a608808c1e4d436df32884cbc1b821ac0", + "reference": "5221f49a608808c1e4d436df32884cbc1b821ac0", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.5 || ^7.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "time": "2019-02-16T20:54:15+00:00" + }, + { + "name": "ocramius/package-versions", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/Ocramius/PackageVersions.git", + "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/a4d4b60d0e60da2487bd21a2c6ac089f85570dbb", + "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": "^7.1.0" + }, + "require-dev": { + "composer/composer": "^1.6.3", + "doctrine/coding-standard": "^5.0.1", + "ext-zip": "*", + "infection/infection": "^0.7.1", + "phpunit/phpunit": "^7.0.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "time": "2019-02-21T12:16:21+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^2.0", + "php": "^5.6 || ^7.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": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2018-07-08T19:23:20+00:00" + }, + { + "name": "phar-io/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2018-07-08T19:19:57+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2017-09-11T18:02:19+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "4.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08", + "shasum": "" + }, + "require": { + "php": "^7.0", + "phpdocumentor/reflection-common": "^1.0.0", + "phpdocumentor/type-resolver": "^0.4.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "doctrine/instantiator": "~1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2017-11-30T07:14:17+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "time": "2017-07-14T14:27:02+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.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.8.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": "2018-08-05T17:53:17+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "0.3.1", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "2cc49f47c69b023eaf05b48e6529389893b13d74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/2cc49f47c69b023eaf05b48e6529389893b13d74", + "reference": "2cc49f47c69b023eaf05b48e6529389893b13d74", + "shasum": "" + }, + "require": { + "php": "~7.1" + }, + "require-dev": { + "consistence/coding-standard": "^2.0.0", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "phing/phing": "^2.16.0", + "phpstan/phpstan": "^0.10", + "phpunit/phpunit": "^6.3", + "slevomat/coding-standard": "^3.3.0", + "symfony/process": "^3.4 || ^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.3-dev" + } + }, + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "time": "2019-01-14T12:26:23+00:00" + }, + { + "name": "phpstan/phpstan", + "version": "0.11.2", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan.git", + "reference": "8e185a74004920419ee97bf9dc62e6a175e8dca5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/8e185a74004920419ee97bf9dc62e6a175e8dca5", + "reference": "8e185a74004920419ee97bf9dc62e6a175e8dca5", + "shasum": "" + }, + "require": { + "composer/xdebug-handler": "^1.3.0", + "jean85/pretty-package-versions": "^1.0.3", + "nette/bootstrap": "^2.4 || ^3.0", + "nette/di": "^2.4.7 || ^3.0", + "nette/robot-loader": "^3.0.1", + "nette/utils": "^2.4.5 || ^3.0", + "nikic/php-parser": "^4.0.2", + "php": "~7.1", + "phpstan/phpdoc-parser": "^0.3", + "symfony/console": "~3.2 || ~4.0", + "symfony/finder": "~3.2 || ~4.0" + }, + "conflict": { + "symfony/console": "3.4.16 || 4.1.5" + }, + "require-dev": { + "brianium/paratest": "^2.0", + "consistence/coding-standard": "^3.5", + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4", + "ext-intl": "*", + "ext-mysqli": "*", + "ext-soap": "*", + "ext-zip": "*", + "jakub-onderka/php-parallel-lint": "^1.0", + "localheinz/composer-normalize": "^1.1.0", + "phing/phing": "^2.16.0", + "phpstan/phpstan-deprecation-rules": "^0.11", + "phpstan/phpstan-php-parser": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-strict-rules": "^0.11", + "phpunit/phpunit": "^7.0", + "slevomat/coding-standard": "^4.7.2", + "squizlabs/php_codesniffer": "^3.3.2" + }, + "bin": [ + "bin/phpstan" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.11-dev" + } + }, + "autoload": { + "psr-4": { + "PHPStan\\": [ + "src/", + "build/PHPStan" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", + "time": "2019-02-12T14:54:38+00:00" + }, + { + "name": "phpstan/phpstan-phpunit", + "version": "0.11", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan-phpunit.git", + "reference": "70c22d44b96a21a4952fc13021a5a63cc83f5c81" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/70c22d44b96a21a4952fc13021a5a63cc83f5c81", + "reference": "70c22d44b96a21a4952fc13021a5a63cc83f5c81", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.0", + "php": "~7.1", + "phpstan/phpdoc-parser": "^0.3", + "phpstan/phpstan": "^0.11" + }, + "conflict": { + "phpunit/phpunit": "<7.0" + }, + "require-dev": { + "consistence/coding-standard": "^3.0.1", + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4", + "jakub-onderka/php-parallel-lint": "^1.0", + "phing/phing": "^2.16.0", + "phpstan/phpstan-strict-rules": "^0.11", + "phpunit/phpunit": "^7.0", + "satooshi/php-coveralls": "^1.0", + "slevomat/coding-standard": "^4.5.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.11-dev" + } + }, + "autoload": { + "psr-4": { + "PHPStan\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPUnit extensions and rules for PHPStan", + "time": "2018-12-22T14:05:04+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "7.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "cfca9c5f7f2694ca0c7749ffb142927d9f05250f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/cfca9c5f7f2694ca0c7749ffb142927d9f05250f", + "reference": "cfca9c5f7f2694ca0c7749ffb142927d9f05250f", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.2", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.0.1", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^4.1", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.0" + }, + "suggest": { + "ext-xdebug": "^2.6.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2019-02-15T13:40:27+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "050bedf145a257b1ff02746c31894800e5122946" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", + "reference": "050bedf145a257b1ff02746c31894800e5122946", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2018-09-13T20:33:42+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": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "8b389aebe1b8b0578430bda0c7c95a829608e059" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b389aebe1b8b0578430bda0c7c95a829608e059", + "reference": "8b389aebe1b8b0578430bda0c7c95a829608e059", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2019-02-20T10:12:59+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18", + "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2018-10-30T05:52:18+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "8.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "a7af0201285445c9c73c4bdf869c486e36b41604" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a7af0201285445c9c73c4bdf869c486e36b41604", + "reference": "a7af0201285445c9c73c4bdf869c486e36b41604", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.7", + "phar-io/manifest": "^1.0.2", + "phar-io/version": "^2.0", + "php": "^7.2", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^7.0", + "phpunit/php-file-iterator": "^2.0.1", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.0", + "sebastian/comparator": "^3.0", + "sebastian/diff": "^3.0", + "sebastian/environment": "^4.1", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^3.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0", + "sebastian/version": "^2.0.1" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2019-02-18T09:23:05+00:00" + }, + { + "name": "psr/log", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "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": "2018-11-20T15:27:04+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": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "shasum": "" + }, + "require": { + "php": "^7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "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": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2018-07-12T15:12:46+00:00" + }, + { + "name": "sebastian/diff", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "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", + "udiff", + "unidiff", + "unified diff" + ], + "time": "2019-02-04T06:01:07+00:00" + }, + { + "name": "sebastian/environment", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6fda8ce1974b62b14935adc02a9ed38252eca656", + "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2019-02-01T05:27:49+00:00" + }, + { + "name": "sebastian/exporter", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "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": "2017-04-03T13:19:02+00:00" + }, + { + "name": "sebastian/global-state", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "shasum": "" + }, + "require": { + "php": "^7.2", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^8.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2019-02-01T05:30:01+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-08-03T12:35:26+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "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": "2017-03-03T06:23:57+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2018-10-04T04:07:39+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": "slevomat/coding-standard", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/slevomat/coding-standard.git", + "reference": "fdab228c1800db9e65a62dde306bfa856d98fcc3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/fdab228c1800db9e65a62dde306bfa856d98fcc3", + "reference": "fdab228c1800db9e65a62dde306bfa856d98fcc3", + "shasum": "" + }, + "require": { + "php": "^7.1", + "phpstan/phpdoc-parser": "^0.3.1", + "squizlabs/php_codesniffer": "^3.4.0" + }, + "require-dev": { + "jakub-onderka/php-parallel-lint": "1.0.0", + "phing/phing": "2.16.1", + "phpstan/phpstan": "0.11.1", + "phpstan/phpstan-phpunit": "0.11", + "phpstan/phpstan-strict-rules": "0.11", + "phpunit/phpunit": "8.0.0" + }, + "type": "phpcodesniffer-standard", + "autoload": { + "psr-4": { + "SlevomatCodingStandard\\": "SlevomatCodingStandard" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", + "time": "2019-02-03T20:31:35+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "379deb987e26c7cd103a7b387aea178baec96e48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/379deb987e26c7cd103a7b387aea178baec96e48", + "reference": "379deb987e26c7cd103a7b387aea178baec96e48", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "http://www.squizlabs.com/php-codesniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2018-12-19T23:57:18+00:00" + }, + { + "name": "symfony/console", + "version": "v4.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "1f0ad51dfde4da8a6070f06adc58b4e37cbb37a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/1f0ad51dfde4da8a6070f06adc58b4e37cbb37a4", + "reference": "1f0ad51dfde4da8a6070f06adc58b4e37cbb37a4", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/contracts": "^1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-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": "2019-01-25T14:35:16+00:00" + }, + { + "name": "symfony/contracts", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/contracts.git", + "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/contracts/zipball/1aa7ab2429c3d594dd70689604b5cf7421254cdf", + "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "psr/cache": "^1.0", + "psr/container": "^1.0" + }, + "suggest": { + "psr/cache": "When using the Cache contracts", + "psr/container": "When using the Service contracts", + "symfony/cache-contracts-implementation": "", + "symfony/service-contracts-implementation": "", + "symfony/translation-contracts-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\": "" + }, + "exclude-from-classmap": [ + "**/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A set of abstractions extracted out of the Symfony components", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2018-12-05T08:06:11+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "ef71816cbb264988bb57fe6a73f610888b9aa70c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/ef71816cbb264988bb57fe6a73f610888b9aa70c", + "reference": "ef71816cbb264988bb57fe6a73f610888b9aa70c", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-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": "2019-01-16T20:35:37+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2018-08-06T14:22:27+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", + "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-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": "2018-09-21T13:07:52+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2017-04-07T12:08:54+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2018-12-25T11:19:39+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": { + "php": "^7.3", + "ext-dom": "*", + "ext-xsl": "*" + }, + "platform-overrides": { + "php": "7.3.0" + } +} diff --git a/phpcs.xml.dist b/phpcs.xml.dist new file mode 100644 index 0000000..1d6f947 --- /dev/null +++ b/phpcs.xml.dist @@ -0,0 +1,20 @@ + + + + + + + + + + + + + tests/ + + + */tests/* + + + diff --git a/phpstan.neon.dist b/phpstan.neon.dist new file mode 100644 index 0000000..26ad94f --- /dev/null +++ b/phpstan.neon.dist @@ -0,0 +1,10 @@ +parameters: + ignoreErrors: + - '~expects array|Traversable, \(DOMNodeList&iterable\)|float|string given$~' + level: max + paths: + - tests + +includes: + - vendor/phpstan/phpstan-phpunit/extension.neon + - vendor/phpstan/phpstan-phpunit/rules.neon diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 0000000..b48c1ba --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,13 @@ + + + + + + + tests + + + + diff --git a/src/support.sch b/src/support.sch new file mode 100644 index 0000000..e29272e --- /dev/null +++ b/src/support.sch @@ -0,0 +1,25 @@ + + + + + + + + @ is ignored. + + + + + + + + <> is ignored. + + + + + diff --git a/tests/SchemaTest.php b/tests/SchemaTest.php new file mode 100644 index 0000000..e49830b --- /dev/null +++ b/tests/SchemaTest.php @@ -0,0 +1,178 @@ +expectNotToPerformAssertions(); + + try { + $validator->validate($input); + } catch (ValidationFailed $e) { + $this->fail( + "Document is not considered valid:\n". + implode(PHP_EOL, array_map([$this, 'stringifyFailure'], $e->getFailures())) + ); + } + + return; + } + + try { + $validator->validate($input); + $this->fail('Document is considered valid when it is not'); + } catch (ValidationFailed $e) { + $this->assertEquals($expected, $e->getFailures()); + } + } + + public function fileProvider() : iterable + { + $files = Finder::create()->files() + ->name('*.xml') + ->in(__DIR__.'/cases'); + + return $this->extractSchemas($files); + } + + private function extractSchemas(Finder $files) : iterable + { + foreach ($files as $file) { + $input = FluentDOM::load($file->getPathname(), 'text/xml', [Options::ALLOW_FILE => true]); + $input->registerNamespace('jats', 'http://jats.nlm.nih.gov'); + + yield $file->getRelativePathname() => [ + $input, + $this->findValidator($input, $file), + $this->findExpectedFailures($input, $file), + ]; + } + } + + private function findValidator(Document $dom, SplFileInfo $file) : XmlValidator + { + $validators = map( + $dom('/processing-instruction("xml-model")'), + function (ProcessingInstruction $instruction) use ($file) : XmlValidator { + $parsed = $this->parseProcessingInstruction($instruction, $file); + $schema = "{$file->getPath()}/{$parsed['href']}"; + if (!is_readable($schema)) { + throw new LogicException("Failed to read schema {$schema} in {$file->getRelativePathname()}"); + } + + switch ($parsed['schematypens']) { + case 'http://relaxng.org/ns/structure/1.0': + return new RelaxNgValidator($schema); + case 'http://purl.oclc.org/dsdl/schematron': + return new SchematronValidator($schema); + default: + throw new LogicException( + "Unknown schematypens {$parsed['schematypens']} in {$file->getRelativePathname()}" + ); + } + } + ); + + return 1 === count($validators) ? $validators[0] : new CompositeValidator(...$validators); + } + + private function parseProcessingInstruction(ProcessingInstruction $instruction, SplFileInfo $file) : array + { + $valid = preg_match_all( + '~([a-z]+)="(.*?)(?nodeValue, + $matches, + PREG_SET_ORDER + ); + + if (!$valid) { + throw new LogicException("Failed to parse processing instruction in {$file->getRelativePathname()}"); + } + + return array_reduce( + $matches, + function (array $carry, array $parts) { + $carry[$parts[1]] = str_replace('\"', '"', $parts[2]); + + return $carry; + }, + [] + ); + } + + private function findExpectedFailures(Document $dom, SplFileInfo $file) : array + { + return map( + $dom('/processing-instruction("expected-error")'), + function (ProcessingInstruction $instruction) use ($dom, $file) : Failure { + $parsed = $this->parseProcessingInstruction($instruction, $file); + + if (isset($parsed['node'])) { + $nodes = $dom->xpath()->evaluate($parsed['node'], null, true); + if (!$nodes instanceof DOMNodeList || !$node = $nodes->item(0)) { + throw new LogicException( + "Failed to match {$parsed['node']} in {$file->getRelativePathname()}" + ); + } + } + + return new Failure( + $parsed['message'], + isset($parsed['line']) ? (int) $parsed['line'] : (isset($node) ? $node->getLineNo() : null), + $node ?? null + ); + } + ); + } + + private function stringifyFailure(Failure $failure) : string + { + if (!$failure->getNode() instanceof DOMNode && !is_int($failure->getLine())) { + return $failure->getMessage(); + } + + if (!$failure->getNode() instanceof DOMNode) { + return sprintf('%s (line %s)', $failure->getMessage(), $failure->getLine()); + } + + return sprintf('%s (%s)', $failure->getMessage(), $failure->getNode()->getNodePath()); + } +} diff --git a/tests/cases/abbrev-journal-title.xml b/tests/cases/abbrev-journal-title.xml new file mode 100644 index 0000000..f5417ba --- /dev/null +++ b/tests/cases/abbrev-journal-title.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/abbrev-journal-title"?> + + diff --git a/tests/cases/abbrev.xml b/tests/cases/abbrev.xml new file mode 100644 index 0000000..334896f --- /dev/null +++ b/tests/cases/abbrev.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/abbrev"?> + + diff --git a/tests/cases/abstract.xml b/tests/cases/abstract.xml new file mode 100644 index 0000000..c6ec5ef --- /dev/null +++ b/tests/cases/abstract.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/abstract"?> + + diff --git a/tests/cases/access-date.xml b/tests/cases/access-date.xml new file mode 100644 index 0000000..7de0394 --- /dev/null +++ b/tests/cases/access-date.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/access-date"?> + + diff --git a/tests/cases/ack.xml b/tests/cases/ack.xml new file mode 100644 index 0000000..815def4 --- /dev/null +++ b/tests/cases/ack.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/ack"?> + + diff --git a/tests/cases/addr-line.xml b/tests/cases/addr-line.xml new file mode 100644 index 0000000..3fc262d --- /dev/null +++ b/tests/cases/addr-line.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/addr-line"?> + + diff --git a/tests/cases/address.xml b/tests/cases/address.xml new file mode 100644 index 0000000..e29cc93 --- /dev/null +++ b/tests/cases/address.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/address"?> + +
diff --git a/tests/cases/aff-alternatives.xml b/tests/cases/aff-alternatives.xml new file mode 100644 index 0000000..1d91865 --- /dev/null +++ b/tests/cases/aff-alternatives.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/aff-alternatives"?> + is ignored." node="//aff"?> + + + + diff --git a/tests/cases/aff.xml b/tests/cases/aff.xml new file mode 100644 index 0000000..3ac7a94 --- /dev/null +++ b/tests/cases/aff.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/aff"?> + + diff --git a/tests/cases/ali:free_to_read.xml b/tests/cases/ali:free_to_read.xml new file mode 100644 index 0000000..a606b77 --- /dev/null +++ b/tests/cases/ali:free_to_read.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/ali:free_to_read"?> + + diff --git a/tests/cases/ali:license_ref.xml b/tests/cases/ali:license_ref.xml new file mode 100644 index 0000000..f9c4e03 --- /dev/null +++ b/tests/cases/ali:license_ref.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/ali:license_ref"?> + + diff --git a/tests/cases/alt-text.xml b/tests/cases/alt-text.xml new file mode 100644 index 0000000..1c40635 --- /dev/null +++ b/tests/cases/alt-text.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/alt-text"?> + + diff --git a/tests/cases/alt-title.xml b/tests/cases/alt-title.xml new file mode 100644 index 0000000..38c5855 --- /dev/null +++ b/tests/cases/alt-title.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/alt-title"?> + + diff --git a/tests/cases/alternatives.xml b/tests/cases/alternatives.xml new file mode 100644 index 0000000..ce7da3d --- /dev/null +++ b/tests/cases/alternatives.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/alternatives"?> + is ignored." node="//array"?> + + + + diff --git a/tests/cases/annotation.xml b/tests/cases/annotation.xml new file mode 100644 index 0000000..0a8470f --- /dev/null +++ b/tests/cases/annotation.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/annotation"?> + is ignored." node="//p"?> + + +

+ diff --git a/tests/cases/anonymous.xml b/tests/cases/anonymous.xml new file mode 100644 index 0000000..dd72b8f --- /dev/null +++ b/tests/cases/anonymous.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/anonymous"?> + + diff --git a/tests/cases/app-group.xml b/tests/cases/app-group.xml new file mode 100644 index 0000000..e1ae81a --- /dev/null +++ b/tests/cases/app-group.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/app-group"?> + + diff --git a/tests/cases/app.xml b/tests/cases/app.xml new file mode 100644 index 0000000..5dcfd7a --- /dev/null +++ b/tests/cases/app.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/app"?> + + diff --git a/tests/cases/array.xml b/tests/cases/array.xml new file mode 100644 index 0000000..092dd15 --- /dev/null +++ b/tests/cases/array.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/array"?> + + diff --git a/tests/cases/article-categories.xml b/tests/cases/article-categories.xml new file mode 100644 index 0000000..95c1187 --- /dev/null +++ b/tests/cases/article-categories.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/article-categories"?> + + diff --git a/tests/cases/article-id.xml b/tests/cases/article-id.xml new file mode 100644 index 0000000..9e89d03 --- /dev/null +++ b/tests/cases/article-id.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/article-id"?> + + diff --git a/tests/cases/article-meta.xml b/tests/cases/article-meta.xml new file mode 100644 index 0000000..1624532 --- /dev/null +++ b/tests/cases/article-meta.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/article-meta"?> + + diff --git a/tests/cases/article-title.xml b/tests/cases/article-title.xml new file mode 100644 index 0000000..58bf029 --- /dev/null +++ b/tests/cases/article-title.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/article-title"?> + + diff --git a/tests/cases/article/@article-type.xml b/tests/cases/article/@article-type.xml new file mode 100644 index 0000000..a2c27d5 --- /dev/null +++ b/tests/cases/article/@article-type.xml @@ -0,0 +1,12 @@ + + + + + is ignored." node="//front"?> + is ignored." node="//article-meta"?> + +

+ + + +
diff --git a/tests/cases/article/@dtd-version.xml b/tests/cases/article/@dtd-version.xml new file mode 100644 index 0000000..db476b1 --- /dev/null +++ b/tests/cases/article/@dtd-version.xml @@ -0,0 +1,12 @@ + + + + + is ignored." node="//front"?> + is ignored." node="//article-meta"?> + +
+ + + +
diff --git a/tests/cases/article/@id.xml b/tests/cases/article/@id.xml new file mode 100644 index 0000000..4b9bb3d --- /dev/null +++ b/tests/cases/article/@id.xml @@ -0,0 +1,12 @@ + + + + + is ignored." node="//front"?> + is ignored." node="//article-meta"?> + +
+ + + +
diff --git a/tests/cases/article/@specific-use.xml b/tests/cases/article/@specific-use.xml new file mode 100644 index 0000000..8d7c637 --- /dev/null +++ b/tests/cases/article/@specific-use.xml @@ -0,0 +1,12 @@ + + + + + is ignored." node="//front"?> + is ignored." node="//article-meta"?> + +
+ + + +
diff --git a/tests/cases/article/@xml:base.xml b/tests/cases/article/@xml:base.xml new file mode 100644 index 0000000..48df2cc --- /dev/null +++ b/tests/cases/article/@xml:base.xml @@ -0,0 +1,12 @@ + + + + + is ignored." node="//front"?> + is ignored." node="//article-meta"?> + +
+ + + +
diff --git a/tests/cases/article/@xml:lang.xml b/tests/cases/article/@xml:lang.xml new file mode 100644 index 0000000..69dbb38 --- /dev/null +++ b/tests/cases/article/@xml:lang.xml @@ -0,0 +1,11 @@ + + + + is ignored." node="//front"?> + is ignored." node="//article-meta"?> + +
+ + + +
diff --git a/tests/cases/attrib.xml b/tests/cases/attrib.xml new file mode 100644 index 0000000..5664a38 --- /dev/null +++ b/tests/cases/attrib.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/attrib"?> + + diff --git a/tests/cases/author-comment.xml b/tests/cases/author-comment.xml new file mode 100644 index 0000000..25be12e --- /dev/null +++ b/tests/cases/author-comment.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/author-comment"?> + is ignored." node="//p"?> + + +

+ diff --git a/tests/cases/author-notes.xml b/tests/cases/author-notes.xml new file mode 100644 index 0000000..a803f5f --- /dev/null +++ b/tests/cases/author-notes.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/author-notes"?> + is ignored." node="//x"?> + + + + diff --git a/tests/cases/award-group.xml b/tests/cases/award-group.xml new file mode 100644 index 0000000..1f9fcf0 --- /dev/null +++ b/tests/cases/award-group.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/award-group"?> + + diff --git a/tests/cases/award-id.xml b/tests/cases/award-id.xml new file mode 100644 index 0000000..e55d147 --- /dev/null +++ b/tests/cases/award-id.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/award-id"?> + + diff --git a/tests/cases/back.xml b/tests/cases/back.xml new file mode 100644 index 0000000..87b0c76 --- /dev/null +++ b/tests/cases/back.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/back"?> + + diff --git a/tests/cases/bio.xml b/tests/cases/bio.xml new file mode 100644 index 0000000..e852818 --- /dev/null +++ b/tests/cases/bio.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/bio"?> + + diff --git a/tests/cases/body.xml b/tests/cases/body.xml new file mode 100644 index 0000000..11d81de --- /dev/null +++ b/tests/cases/body.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/body"?> + + diff --git a/tests/cases/bold.xml b/tests/cases/bold.xml new file mode 100644 index 0000000..57bc750 --- /dev/null +++ b/tests/cases/bold.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/bold"?> + + diff --git a/tests/cases/boxed-text.xml b/tests/cases/boxed-text.xml new file mode 100644 index 0000000..2d0b90e --- /dev/null +++ b/tests/cases/boxed-text.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/boxed-text"?> + + diff --git a/tests/cases/break.xml b/tests/cases/break.xml new file mode 100644 index 0000000..b396f67 --- /dev/null +++ b/tests/cases/break.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/break"?> + + diff --git a/tests/cases/caption.xml b/tests/cases/caption.xml new file mode 100644 index 0000000..079649e --- /dev/null +++ b/tests/cases/caption.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/caption"?> + + diff --git a/tests/cases/chapter-title.xml b/tests/cases/chapter-title.xml new file mode 100644 index 0000000..69d2134 --- /dev/null +++ b/tests/cases/chapter-title.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/chapter-title"?> + + diff --git a/tests/cases/chem-struct-wrap.xml b/tests/cases/chem-struct-wrap.xml new file mode 100644 index 0000000..88536de --- /dev/null +++ b/tests/cases/chem-struct-wrap.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/chem-struct-wrap"?> + is ignored." node="//textual-form"?> + + + + diff --git a/tests/cases/chem-struct.xml b/tests/cases/chem-struct.xml new file mode 100644 index 0000000..56a635b --- /dev/null +++ b/tests/cases/chem-struct.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/chem-struct"?> + + diff --git a/tests/cases/citation-alternatives.xml b/tests/cases/citation-alternatives.xml new file mode 100644 index 0000000..a1f65aa --- /dev/null +++ b/tests/cases/citation-alternatives.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/citation-alternatives"?> + is ignored." node="//mixed-citation"?> + + + + diff --git a/tests/cases/city.xml b/tests/cases/city.xml new file mode 100644 index 0000000..4a4303a --- /dev/null +++ b/tests/cases/city.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/city"?> + + diff --git a/tests/cases/code.xml b/tests/cases/code.xml new file mode 100644 index 0000000..6988ed6 --- /dev/null +++ b/tests/cases/code.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/code"?> + + diff --git a/tests/cases/col.xml b/tests/cases/col.xml new file mode 100644 index 0000000..1fc1723 --- /dev/null +++ b/tests/cases/col.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/col"?> + + diff --git a/tests/cases/colgroup.xml b/tests/cases/colgroup.xml new file mode 100644 index 0000000..d1ecbd7 --- /dev/null +++ b/tests/cases/colgroup.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/colgroup"?> + + diff --git a/tests/cases/collab-alternatives.xml b/tests/cases/collab-alternatives.xml new file mode 100644 index 0000000..f5d1d9d --- /dev/null +++ b/tests/cases/collab-alternatives.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/collab-alternatives"?> + is ignored." node="//collab"?> + + + + diff --git a/tests/cases/collab.xml b/tests/cases/collab.xml new file mode 100644 index 0000000..0b81672 --- /dev/null +++ b/tests/cases/collab.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/collab"?> + + diff --git a/tests/cases/comment.xml b/tests/cases/comment.xml new file mode 100644 index 0000000..e797c3c --- /dev/null +++ b/tests/cases/comment.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/comment"?> + + diff --git a/tests/cases/compound-kwd-part.xml b/tests/cases/compound-kwd-part.xml new file mode 100644 index 0000000..7bcfd50 --- /dev/null +++ b/tests/cases/compound-kwd-part.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/compound-kwd-part"?> + + diff --git a/tests/cases/compound-kwd.xml b/tests/cases/compound-kwd.xml new file mode 100644 index 0000000..a07eef1 --- /dev/null +++ b/tests/cases/compound-kwd.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/compound-kwd"?> + is ignored." node="//compound-kwd-part"?> + + + + diff --git a/tests/cases/compound-subject-part.xml b/tests/cases/compound-subject-part.xml new file mode 100644 index 0000000..be68bff --- /dev/null +++ b/tests/cases/compound-subject-part.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/compound-subject-part"?> + + diff --git a/tests/cases/compound-subject.xml b/tests/cases/compound-subject.xml new file mode 100644 index 0000000..19eef53 --- /dev/null +++ b/tests/cases/compound-subject.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/compound-subject"?> + is ignored." node="//compound-subject-part"?> + + + + diff --git a/tests/cases/conf-acronym.xml b/tests/cases/conf-acronym.xml new file mode 100644 index 0000000..e540ebf --- /dev/null +++ b/tests/cases/conf-acronym.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/conf-acronym"?> + + diff --git a/tests/cases/conf-date.xml b/tests/cases/conf-date.xml new file mode 100644 index 0000000..176a555 --- /dev/null +++ b/tests/cases/conf-date.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/conf-date"?> + + diff --git a/tests/cases/conf-loc.xml b/tests/cases/conf-loc.xml new file mode 100644 index 0000000..280b007 --- /dev/null +++ b/tests/cases/conf-loc.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/conf-loc"?> + + diff --git a/tests/cases/conf-name.xml b/tests/cases/conf-name.xml new file mode 100644 index 0000000..a854ad7 --- /dev/null +++ b/tests/cases/conf-name.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/conf-name"?> + + diff --git a/tests/cases/conf-num.xml b/tests/cases/conf-num.xml new file mode 100644 index 0000000..e14298b --- /dev/null +++ b/tests/cases/conf-num.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/conf-num"?> + + diff --git a/tests/cases/conf-sponsor.xml b/tests/cases/conf-sponsor.xml new file mode 100644 index 0000000..a82c746 --- /dev/null +++ b/tests/cases/conf-sponsor.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/conf-sponsor"?> + + diff --git a/tests/cases/conf-theme.xml b/tests/cases/conf-theme.xml new file mode 100644 index 0000000..962ef88 --- /dev/null +++ b/tests/cases/conf-theme.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/conf-theme"?> + + diff --git a/tests/cases/conference.xml b/tests/cases/conference.xml new file mode 100644 index 0000000..d7cdc02 --- /dev/null +++ b/tests/cases/conference.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/conference"?> + + diff --git a/tests/cases/contrib-group.xml b/tests/cases/contrib-group.xml new file mode 100644 index 0000000..daa190f --- /dev/null +++ b/tests/cases/contrib-group.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/contrib-group"?> + is ignored." node="//x"?> + + + + diff --git a/tests/cases/contrib-id.xml b/tests/cases/contrib-id.xml new file mode 100644 index 0000000..c61272c --- /dev/null +++ b/tests/cases/contrib-id.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/contrib-id"?> + + diff --git a/tests/cases/contrib.xml b/tests/cases/contrib.xml new file mode 100644 index 0000000..e700423 --- /dev/null +++ b/tests/cases/contrib.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/contrib"?> + + diff --git a/tests/cases/copyright-holder.xml b/tests/cases/copyright-holder.xml new file mode 100644 index 0000000..cf7fac4 --- /dev/null +++ b/tests/cases/copyright-holder.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/copyright-holder"?> + + diff --git a/tests/cases/copyright-statement.xml b/tests/cases/copyright-statement.xml new file mode 100644 index 0000000..8e4ae4c --- /dev/null +++ b/tests/cases/copyright-statement.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/copyright-statement"?> + + diff --git a/tests/cases/copyright-year.xml b/tests/cases/copyright-year.xml new file mode 100644 index 0000000..480881e --- /dev/null +++ b/tests/cases/copyright-year.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/copyright-year"?> + + diff --git a/tests/cases/corresp.xml b/tests/cases/corresp.xml new file mode 100644 index 0000000..bc0c049 --- /dev/null +++ b/tests/cases/corresp.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/corresp"?> + + diff --git a/tests/cases/count.xml b/tests/cases/count.xml new file mode 100644 index 0000000..e4b7807 --- /dev/null +++ b/tests/cases/count.xml @@ -0,0 +1,8 @@ + + + + + + is ignored." node="/count"?> + + diff --git a/tests/cases/country.xml b/tests/cases/country.xml new file mode 100644 index 0000000..6a540b2 --- /dev/null +++ b/tests/cases/country.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/country"?> + + diff --git a/tests/cases/counts.xml b/tests/cases/counts.xml new file mode 100644 index 0000000..e512531 --- /dev/null +++ b/tests/cases/counts.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/counts"?> + + diff --git a/tests/cases/custom-meta-group.xml b/tests/cases/custom-meta-group.xml new file mode 100644 index 0000000..1e87a2a --- /dev/null +++ b/tests/cases/custom-meta-group.xml @@ -0,0 +1,14 @@ + + + + is ignored." node="/custom-meta-group"?> + is ignored." node="//custom-meta"?> + is ignored." node="//meta-name"?> + is ignored." node="//meta-value"?> + + + + + + + diff --git a/tests/cases/custom-meta.xml b/tests/cases/custom-meta.xml new file mode 100644 index 0000000..1bdd88b --- /dev/null +++ b/tests/cases/custom-meta.xml @@ -0,0 +1,11 @@ + + + + is ignored." node="/custom-meta"?> + is ignored." node="//meta-name"?> + is ignored." node="//meta-value"?> + + + + + diff --git a/tests/cases/data-title.xml b/tests/cases/data-title.xml new file mode 100644 index 0000000..c1e709d --- /dev/null +++ b/tests/cases/data-title.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/data-title"?> + + diff --git a/tests/cases/date-in-citation.xml b/tests/cases/date-in-citation.xml new file mode 100644 index 0000000..157b4a1 --- /dev/null +++ b/tests/cases/date-in-citation.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/date-in-citation"?> + + diff --git a/tests/cases/date.xml b/tests/cases/date.xml new file mode 100644 index 0000000..b89770f --- /dev/null +++ b/tests/cases/date.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/date"?> + + diff --git a/tests/cases/day.xml b/tests/cases/day.xml new file mode 100644 index 0000000..fa8ea09 --- /dev/null +++ b/tests/cases/day.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/day"?> + + diff --git a/tests/cases/def-head.xml b/tests/cases/def-head.xml new file mode 100644 index 0000000..b59ae3e --- /dev/null +++ b/tests/cases/def-head.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/def-head"?> + + diff --git a/tests/cases/def-item.xml b/tests/cases/def-item.xml new file mode 100644 index 0000000..bc629ed --- /dev/null +++ b/tests/cases/def-item.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/def-item"?> + + diff --git a/tests/cases/def-list.xml b/tests/cases/def-list.xml new file mode 100644 index 0000000..3bc3069 --- /dev/null +++ b/tests/cases/def-list.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/def-list"?> + + diff --git a/tests/cases/def.xml b/tests/cases/def.xml new file mode 100644 index 0000000..9076e18 --- /dev/null +++ b/tests/cases/def.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/def"?> + is ignored." node="//p"?> + + +

+ diff --git a/tests/cases/degrees.xml b/tests/cases/degrees.xml new file mode 100644 index 0000000..d7aeb9a --- /dev/null +++ b/tests/cases/degrees.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/degrees"?> + + diff --git a/tests/cases/disp-formula-group.xml b/tests/cases/disp-formula-group.xml new file mode 100644 index 0000000..e2edc1f --- /dev/null +++ b/tests/cases/disp-formula-group.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/disp-formula-group"?> + + diff --git a/tests/cases/disp-formula.xml b/tests/cases/disp-formula.xml new file mode 100644 index 0000000..85feaeb --- /dev/null +++ b/tests/cases/disp-formula.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/disp-formula"?> + + diff --git a/tests/cases/disp-quote.xml b/tests/cases/disp-quote.xml new file mode 100644 index 0000000..9bb50fb --- /dev/null +++ b/tests/cases/disp-quote.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/disp-quote"?> + + diff --git a/tests/cases/edition.xml b/tests/cases/edition.xml new file mode 100644 index 0000000..0d669d0 --- /dev/null +++ b/tests/cases/edition.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/edition"?> + + diff --git a/tests/cases/element-citation.xml b/tests/cases/element-citation.xml new file mode 100644 index 0000000..4ef4ed0 --- /dev/null +++ b/tests/cases/element-citation.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/element-citation"?> + is ignored." node="//x"?> + + + + diff --git a/tests/cases/elocation-id.xml b/tests/cases/elocation-id.xml new file mode 100644 index 0000000..7bd2d8c --- /dev/null +++ b/tests/cases/elocation-id.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/elocation-id"?> + + diff --git a/tests/cases/email.xml b/tests/cases/email.xml new file mode 100644 index 0000000..878ee1f --- /dev/null +++ b/tests/cases/email.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/email"?> + + diff --git a/tests/cases/equation-count.xml b/tests/cases/equation-count.xml new file mode 100644 index 0000000..7745d18 --- /dev/null +++ b/tests/cases/equation-count.xml @@ -0,0 +1,7 @@ + + + + + is ignored." node="/equation-count"?> + + diff --git a/tests/cases/era.xml b/tests/cases/era.xml new file mode 100644 index 0000000..d2ff4a0 --- /dev/null +++ b/tests/cases/era.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/era"?> + + diff --git a/tests/cases/etal.xml b/tests/cases/etal.xml new file mode 100644 index 0000000..1cade8e --- /dev/null +++ b/tests/cases/etal.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/etal"?> + + diff --git a/tests/cases/ext-link.xml b/tests/cases/ext-link.xml new file mode 100644 index 0000000..f9d0a79 --- /dev/null +++ b/tests/cases/ext-link.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/ext-link"?> + + diff --git a/tests/cases/fax.xml b/tests/cases/fax.xml new file mode 100644 index 0000000..b21fa1e --- /dev/null +++ b/tests/cases/fax.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/fax"?> + + diff --git a/tests/cases/fig-count.xml b/tests/cases/fig-count.xml new file mode 100644 index 0000000..fe2c9e0 --- /dev/null +++ b/tests/cases/fig-count.xml @@ -0,0 +1,7 @@ + + + + + is ignored." node="/fig-count"?> + + diff --git a/tests/cases/fig-group.xml b/tests/cases/fig-group.xml new file mode 100644 index 0000000..1dff37e --- /dev/null +++ b/tests/cases/fig-group.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/fig-group"?> + + diff --git a/tests/cases/fig.xml b/tests/cases/fig.xml new file mode 100644 index 0000000..0a9c031 --- /dev/null +++ b/tests/cases/fig.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/fig"?> + + diff --git a/tests/cases/fixed-case.xml b/tests/cases/fixed-case.xml new file mode 100644 index 0000000..d2bf65d --- /dev/null +++ b/tests/cases/fixed-case.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/fixed-case"?> + + diff --git a/tests/cases/floats-group.xml b/tests/cases/floats-group.xml new file mode 100644 index 0000000..329cb75 --- /dev/null +++ b/tests/cases/floats-group.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/floats-group"?> + + diff --git a/tests/cases/fn-group.xml b/tests/cases/fn-group.xml new file mode 100644 index 0000000..92a370c --- /dev/null +++ b/tests/cases/fn-group.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/fn-group"?> + is ignored." node="//x"?> + + + + diff --git a/tests/cases/fn.xml b/tests/cases/fn.xml new file mode 100644 index 0000000..390ebeb --- /dev/null +++ b/tests/cases/fn.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/fn"?> + is ignored." node="//p"?> + + +

+ diff --git a/tests/cases/fpage.xml b/tests/cases/fpage.xml new file mode 100644 index 0000000..6d58da8 --- /dev/null +++ b/tests/cases/fpage.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/fpage"?> + + diff --git a/tests/cases/front-stub.xml b/tests/cases/front-stub.xml new file mode 100644 index 0000000..fd3699b --- /dev/null +++ b/tests/cases/front-stub.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/front-stub"?> + + diff --git a/tests/cases/front.xml b/tests/cases/front.xml new file mode 100644 index 0000000..dafc68c --- /dev/null +++ b/tests/cases/front.xml @@ -0,0 +1,9 @@ + + + + is ignored." node="/front"?> + is ignored." node="//article-meta"?> + + + + diff --git a/tests/cases/funding-group.xml b/tests/cases/funding-group.xml new file mode 100644 index 0000000..79cc39f --- /dev/null +++ b/tests/cases/funding-group.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/funding-group"?> + + diff --git a/tests/cases/funding-source.xml b/tests/cases/funding-source.xml new file mode 100644 index 0000000..aab9360 --- /dev/null +++ b/tests/cases/funding-source.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/funding-source"?> + + diff --git a/tests/cases/funding-statement.xml b/tests/cases/funding-statement.xml new file mode 100644 index 0000000..7efc12e --- /dev/null +++ b/tests/cases/funding-statement.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/funding-statement"?> + + diff --git a/tests/cases/given-names.xml b/tests/cases/given-names.xml new file mode 100644 index 0000000..6782c11 --- /dev/null +++ b/tests/cases/given-names.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/given-names"?> + + diff --git a/tests/cases/glossary.xml b/tests/cases/glossary.xml new file mode 100644 index 0000000..5003d95 --- /dev/null +++ b/tests/cases/glossary.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/glossary"?> + + diff --git a/tests/cases/glyph-data.xml b/tests/cases/glyph-data.xml new file mode 100644 index 0000000..1216197 --- /dev/null +++ b/tests/cases/glyph-data.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/glyph-data"?> + + diff --git a/tests/cases/glyph-ref.xml b/tests/cases/glyph-ref.xml new file mode 100644 index 0000000..5436e03 --- /dev/null +++ b/tests/cases/glyph-ref.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/glyph-ref"?> + + diff --git a/tests/cases/gov.xml b/tests/cases/gov.xml new file mode 100644 index 0000000..3b6aa24 --- /dev/null +++ b/tests/cases/gov.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/gov"?> + + diff --git a/tests/cases/graphic.xml b/tests/cases/graphic.xml new file mode 100644 index 0000000..1c55426 --- /dev/null +++ b/tests/cases/graphic.xml @@ -0,0 +1,7 @@ + + + + + is ignored." node="/graphic"?> + + diff --git a/tests/cases/history.xml b/tests/cases/history.xml new file mode 100644 index 0000000..2a213b1 --- /dev/null +++ b/tests/cases/history.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/history"?> + + diff --git a/tests/cases/hr.xml b/tests/cases/hr.xml new file mode 100644 index 0000000..5c8123a --- /dev/null +++ b/tests/cases/hr.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/hr"?> + +


diff --git a/tests/cases/inline-formula.xml b/tests/cases/inline-formula.xml new file mode 100644 index 0000000..e5f39cd --- /dev/null +++ b/tests/cases/inline-formula.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/inline-formula"?> + + diff --git a/tests/cases/inline-graphic.xml b/tests/cases/inline-graphic.xml new file mode 100644 index 0000000..803dc81 --- /dev/null +++ b/tests/cases/inline-graphic.xml @@ -0,0 +1,7 @@ + + + + + is ignored." node="/inline-graphic"?> + + diff --git a/tests/cases/inline-supplementary-material.xml b/tests/cases/inline-supplementary-material.xml new file mode 100644 index 0000000..af51b51 --- /dev/null +++ b/tests/cases/inline-supplementary-material.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/inline-supplementary-material"?> + + diff --git a/tests/cases/institution-id.xml b/tests/cases/institution-id.xml new file mode 100644 index 0000000..d5768ab --- /dev/null +++ b/tests/cases/institution-id.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/institution-id"?> + + diff --git a/tests/cases/institution-wrap.xml b/tests/cases/institution-wrap.xml new file mode 100644 index 0000000..609e4b4 --- /dev/null +++ b/tests/cases/institution-wrap.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/institution-wrap"?> + + diff --git a/tests/cases/institution.xml b/tests/cases/institution.xml new file mode 100644 index 0000000..3cad4f9 --- /dev/null +++ b/tests/cases/institution.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/institution"?> + + diff --git a/tests/cases/isbn.xml b/tests/cases/isbn.xml new file mode 100644 index 0000000..973796b --- /dev/null +++ b/tests/cases/isbn.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/isbn"?> + + diff --git a/tests/cases/issn-l.xml b/tests/cases/issn-l.xml new file mode 100644 index 0000000..612e8ec --- /dev/null +++ b/tests/cases/issn-l.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/issn-l"?> + + diff --git a/tests/cases/issn.xml b/tests/cases/issn.xml new file mode 100644 index 0000000..38fcb62 --- /dev/null +++ b/tests/cases/issn.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/issn"?> + + diff --git a/tests/cases/issue-id.xml b/tests/cases/issue-id.xml new file mode 100644 index 0000000..b4dbd17 --- /dev/null +++ b/tests/cases/issue-id.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/issue-id"?> + + diff --git a/tests/cases/issue-part.xml b/tests/cases/issue-part.xml new file mode 100644 index 0000000..58e492b --- /dev/null +++ b/tests/cases/issue-part.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/issue-part"?> + + diff --git a/tests/cases/issue-sponsor.xml b/tests/cases/issue-sponsor.xml new file mode 100644 index 0000000..303449e --- /dev/null +++ b/tests/cases/issue-sponsor.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/issue-sponsor"?> + + diff --git a/tests/cases/issue-title.xml b/tests/cases/issue-title.xml new file mode 100644 index 0000000..64482ac --- /dev/null +++ b/tests/cases/issue-title.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/issue-title"?> + + diff --git a/tests/cases/issue.xml b/tests/cases/issue.xml new file mode 100644 index 0000000..3d26916 --- /dev/null +++ b/tests/cases/issue.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/issue"?> + + diff --git a/tests/cases/italic.xml b/tests/cases/italic.xml new file mode 100644 index 0000000..d192286 --- /dev/null +++ b/tests/cases/italic.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/italic"?> + + diff --git a/tests/cases/journal-id.xml b/tests/cases/journal-id.xml new file mode 100644 index 0000000..4c99911 --- /dev/null +++ b/tests/cases/journal-id.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/journal-id"?> + + diff --git a/tests/cases/journal-meta.xml b/tests/cases/journal-meta.xml new file mode 100644 index 0000000..a79a555 --- /dev/null +++ b/tests/cases/journal-meta.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/journal-meta"?> + + diff --git a/tests/cases/journal-subtitle.xml b/tests/cases/journal-subtitle.xml new file mode 100644 index 0000000..f6f1998 --- /dev/null +++ b/tests/cases/journal-subtitle.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/journal-subtitle"?> + + diff --git a/tests/cases/journal-title-group.xml b/tests/cases/journal-title-group.xml new file mode 100644 index 0000000..c68139f --- /dev/null +++ b/tests/cases/journal-title-group.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/journal-title-group"?> + + diff --git a/tests/cases/journal-title.xml b/tests/cases/journal-title.xml new file mode 100644 index 0000000..14c5f95 --- /dev/null +++ b/tests/cases/journal-title.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/journal-title"?> + + diff --git a/tests/cases/kwd-group.xml b/tests/cases/kwd-group.xml new file mode 100644 index 0000000..8aecd0a --- /dev/null +++ b/tests/cases/kwd-group.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/kwd-group"?> + + diff --git a/tests/cases/kwd.xml b/tests/cases/kwd.xml new file mode 100644 index 0000000..9dbb053 --- /dev/null +++ b/tests/cases/kwd.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/kwd"?> + + diff --git a/tests/cases/label.xml b/tests/cases/label.xml new file mode 100644 index 0000000..1cd8492 --- /dev/null +++ b/tests/cases/label.xml @@ -0,0 +1,6 @@ + + + + is ignored." node="/label"?> + +