diff --git a/autoload.php b/autoload.php index 53f5ceed..d25383f7 100644 --- a/autoload.php +++ b/autoload.php @@ -39,7 +39,7 @@ class Autoloader $dir = new RecursiveDirectoryIterator(ROOT_DIR, RecursiveDirectoryIterator::SKIP_DOTS); $ite = new RecursiveIteratorIterator($dir); - $pathIterator = new RegexIterator($ite, '/.*\.class\.php$/', RegexIterator::GET_MATCH); + $pathIterator = new RegexIterator($ite, '/.*\.php$/', RegexIterator::GET_MATCH); foreach($pathIterator as $paths) { foreach($paths as $path) diff --git a/composer.json b/composer.json index 9ecee711..0a087866 100644 --- a/composer.json +++ b/composer.json @@ -4,6 +4,12 @@ "php": ">=7.0", "ext-curl": "*", "ext-mbstring": "*", - "ext-xml": "*" + "ext-xml": "*", + "leafo/scssphp": "0.7.4", + "erusev/parsedown": "^1.6", + "erusev/parsedown-extra": "^0.7.1", + "pelago/emogrifier": "^2.0", + "mustangostang/spyc": "^0.6.2", + "phpunit/phpunit": "^6.5" } -} \ No newline at end of file +} diff --git a/composer.lock b/composer.lock index c5ff7699..dda0f7bd 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,1727 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "8a09a8048d9156271f6d658c02f28ab9", - "packages": [], + "content-hash": "e8398f79f58f50b7a8b7e006ff135656", + "packages": [ + { + "name": "doctrine/instantiator", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "shasum": "" + }, + "require": { + "php": ">=5.3,<8.0-DEV" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.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": "2015-06-14T21:17:01+00:00" + }, + { + "name": "erusev/parsedown", + "version": "1.7.1", + "source": { + "type": "git", + "url": "https://github.com/erusev/parsedown.git", + "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/92e9c27ba0e74b8b028b111d1b6f956a15c01fc1", + "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35" + }, + "type": "library", + "autoload": { + "psr-0": { + "Parsedown": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuil Rusev", + "email": "hello@erusev.com", + "homepage": "http://erusev.com" + } + ], + "description": "Parser for Markdown.", + "homepage": "http://parsedown.org", + "keywords": [ + "markdown", + "parser" + ], + "time": "2018-03-08T01:11:30+00:00" + }, + { + "name": "erusev/parsedown-extra", + "version": "0.7.1", + "source": { + "type": "git", + "url": "https://github.com/erusev/parsedown-extra.git", + "reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/erusev/parsedown-extra/zipball/0db5cce7354e4b76f155d092ab5eb3981c21258c", + "reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c", + "shasum": "" + }, + "require": { + "erusev/parsedown": "~1.4" + }, + "type": "library", + "autoload": { + "psr-0": { + "ParsedownExtra": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuil Rusev", + "email": "hello@erusev.com", + "homepage": "http://erusev.com" + } + ], + "description": "An extension of Parsedown that adds support for Markdown Extra.", + "homepage": "https://github.com/erusev/parsedown-extra", + "keywords": [ + "markdown", + "markdown extra", + "parsedown", + "parser" + ], + "time": "2015-11-01T10:19:22+00:00" + }, + { + "name": "leafo/scssphp", + "version": "v0.7.4", + "source": { + "type": "git", + "url": "https://github.com/leafo/scssphp.git", + "reference": "d7296256bd1bfacb8bd24e69030fd5e187181835" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/leafo/scssphp/zipball/d7296256bd1bfacb8bd24e69030fd5e187181835", + "reference": "d7296256bd1bfacb8bd24e69030fd5e187181835", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.6", + "squizlabs/php_codesniffer": "~2.5" + }, + "bin": [ + "bin/pscss" + ], + "type": "library", + "autoload": { + "psr-4": { + "Leafo\\ScssPhp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Leaf Corcoran", + "email": "leafot@gmail.com", + "homepage": "http://leafo.net" + } + ], + "description": "scssphp is a compiler for SCSS written in PHP.", + "homepage": "http://leafo.github.io/scssphp/", + "keywords": [ + "css", + "less", + "sass", + "scss", + "stylesheet" + ], + "time": "2017-12-21T00:18:53+00:00" + }, + { + "name": "mustangostang/spyc", + "version": "0.6.2", + "source": { + "type": "git", + "url": "https://github.com/mustangostang/spyc.git", + "reference": "23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mustangostang/spyc/zipball/23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d", + "reference": "23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d", + "shasum": "" + }, + "require": { + "php": ">=5.3.1" + }, + "require-dev": { + "phpunit/phpunit": "4.3.*@dev" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.5.x-dev" + } + }, + "autoload": { + "files": [ + "Spyc.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "mustangostang", + "email": "vlad.andersen@gmail.com" + } + ], + "description": "A simple YAML loader/dumper class for PHP", + "homepage": "https://github.com/mustangostang/spyc/", + "keywords": [ + "spyc", + "yaml", + "yml" + ], + "time": "2017-02-24T16:06:33+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^4.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": "2017-10-19T19:58:43+00:00" + }, + { + "name": "pelago/emogrifier", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/MyIntervals/emogrifier.git", + "reference": "8babf8ddbf348f26b29674e2f84db66ff7e3d95e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MyIntervals/emogrifier/zipball/8babf8ddbf348f26b29674e2f84db66ff7e3d95e", + "reference": "8babf8ddbf348f26b29674e2f84db66ff7e3d95e", + "shasum": "" + }, + "require": { + "php": "^5.5.0 || ~7.0.0 || ~7.1.0 || ~7.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.0", + "squizlabs/php_codesniffer": "^3.1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Pelago\\": "Classes/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Reeve", + "email": "jreeve@pelagodesign.com" + }, + { + "name": "Cameron Brooks" + }, + { + "name": "Jaime Prado" + }, + { + "name": "Roman Ožana", + "email": "ozana@omdesign.cz" + }, + { + "name": "Oliver Klee", + "email": "github@oliverklee.de" + }, + { + "name": "Zoli Szabó", + "email": "zoli.szabo+github@gmail.com" + } + ], + "description": "Converts CSS styles into inline style attributes in your HTML code", + "homepage": "https://www.myintervals.com/emogrifier.php", + "keywords": [ + "css", + "email", + "pre-processing" + ], + "time": "2018-01-05T23:30:21+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^1.0.1", + "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": "2017-03-05T18:14:27+00:00" + }, + { + "name": "phar-io/version", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "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": "2017-03-05T17:38:23+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.7.5", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401", + "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401", + "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", + "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" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7.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-02-19T10:16:54+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/661f34d0bd3f1a7225ef491a70a020ad23a057a1", + "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.0", + "phpunit/php-file-iterator": "^1.4.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^2.0.1", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-xdebug": "^2.5.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.3.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 provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2017-12-06T09:29:45+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2017-11-27T13:52:08+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.9", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2017-02-26T11:10:40+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "791198a2c6254db10131eecfe8c06670700904db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", + "reference": "791198a2c6254db10131eecfe8c06670700904db", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.2.4" + }, + "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": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2017-11-27T05:48:46+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "6.5.7", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "6bd77b57707c236833d2b57b968e403df060c9d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6bd77b57707c236833d2b57b968e403df060c9d9", + "reference": "6bd77b57707c236833d2b57b968e403df060c9d9", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "^1.6.1", + "phar-io/manifest": "^1.0.1", + "phar-io/version": "^1.0", + "php": "^7.0", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^5.3", + "phpunit/php-file-iterator": "^1.4.3", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^1.0.9", + "phpunit/phpunit-mock-objects": "^5.0.5", + "sebastian/comparator": "^2.1", + "sebastian/diff": "^2.0", + "sebastian/environment": "^3.1", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^1.0", + "sebastian/version": "^2.0.1" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "3.0.2", + "phpunit/dbunit": "<3.0" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-xdebug": "*", + "phpunit/php-invoker": "^1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2018-02-26T07:01:09+00:00" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "5.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/33fd41a76e746b8fa96d00b49a23dadfa8334cdf", + "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.5", + "php": "^7.0", + "phpunit/php-text-template": "^1.2.1", + "sebastian/exporter": "^3.1" + }, + "conflict": { + "phpunit/phpunit": "<6.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.5" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.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": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2018-01-06T05:45:45+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": "2.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9", + "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/diff": "^2.0 || ^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.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" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2018-02-01T13:46:46+00:00" + }, + { + "name": "sebastian/diff", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.2" + }, + "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": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2017-08-03T08:09:46+00:00" + }, + { + "name": "sebastian/environment", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2017-07-01T08:51:00+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": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "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": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2017-04-27T15:39:26+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": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "shasum": "" + }, + "require": { + "php": ">=5.6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2015-07-28T20:34:47+00:00" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03T07:35:21+00:00" + }, + { + "name": "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.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "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-01-29T19:49:41+00:00" + } + ], "packages-dev": [], "aliases": [], "minimum-stability": "stable", diff --git a/content/bounty/publish-open-content.md b/content/bounty/publish-open-content.md index 72e28761..d7bc9fec 100644 --- a/content/bounty/publish-open-content.md +++ b/content/bounty/publish-open-content.md @@ -2,7 +2,7 @@ category: code title: Publish Open Content award: 500-10000+ -status: available +status: complete date: '2016-07-01' --- diff --git a/content/faq/earn-credits.md b/content/faq/earn-credits.md index 20608ec8..02c5d2a0 100644 --- a/content/faq/earn-credits.md +++ b/content/faq/earn-credits.md @@ -4,7 +4,8 @@ category: getstarted order: 1 --- -Currently, there are a couple of ways to obtain LBRY Credits or LBC for short. +======= +There are several ways to obtain LBRY Credits (LBC. 1. LBRY users get an LBC gift by way of in-app [Rewards](https://lbry.io/faq/rewards). 1. LBRY users get LBC for [referring](https://lbry.io/faq/referrals) other users via the LBRY app (see Invites section of the wallet). diff --git a/content/faq/identity-requirements.md b/content/faq/identity-requirements.md index ff281a43..7bea3e1e 100644 --- a/content/faq/identity-requirements.md +++ b/content/faq/identity-requirements.md @@ -7,7 +7,7 @@ category: other LBRY controls [millions of credits](https://lbry.io/faq/credit-policy) that it wants to get into the hands of content creators and content consumers. -Unfortunately, when you try to give stuff away for free, people will abuse it. +Unfortunately, when running a rewards program, people will abuse it. This and only this is the reason we require a credit card to participate in the [rewards](https://lbry.io/faq/rewards) program. We wish we could tell you were a real person without this step, but no other solution we've tried thus far has worked well. This is the fastest and easiest method to verify your identity, otherwise, please see below. @@ -19,7 +19,7 @@ Your card information is submitted directly to [Stripe](https://stripe.com), one ### What If I Don't Want To Provide It? -No problem! We've added three other verification methods - [Phone Verification](https://lbry.io/faq/phone), [YouTube Account Sync](https://lbry.io/faq/youtube) and manual verification via [Discord chat](https://chat.lbry.io). To begin manual verification, type **-new** in the #verification channel which will create a ticket (channel) for your request. **Note: DO NOT message any team members or post in other channels about verification concerns. Rewards will only be granted on a 1 account per household basis** +No problem! We've added three other verification methods - [Phone Verification](https://lbry.io/faq/phone), [YouTube Account Sync](https://lbry.io/faq/youtube), and manual verification via [Discord chat](https://chat.lbry.io). To begin manual verification, type **-new** in the #verification channel which will create a ticket (channel) for your request. **Note: DO NOT message any team members or post in other channels about verification concerns. Rewards will only be granted on a 1 account per household basis** Otherwise, you are welcome to use the LBRY browser without providing any personal information. We just can't give you any rewards. diff --git a/content/faq/lbry-basics.md b/content/faq/lbry-basics.md index 449dff2f..0975dafe 100644 --- a/content/faq/lbry-basics.md +++ b/content/faq/lbry-basics.md @@ -21,7 +21,7 @@ If you want to run the LBRY app on multiple PCs or Windows users, you can either [LBRY Rewards](https://lbry.io/faq/rewards) are used to distribute LBRY Credits(LBC) to new and existing users by allowing them to explore app functions and complete tasks which generate LBC as an award. In order to be eligible for Rewards, you need to [verify your identity](https://lbry.io/faq/identity-requirements) which uniquely identifies you as an LBRY user. ### What is a wallet and how do I find it? {#wallet} -A wallet is a secure, digital wallet used to store, send and receive cryptocurrencies like LBRY Credits(LBC). The LBRY App comes with its own wallet and is stored locally on your computer and nowhere else! **It is critical that you [backup your wallet data](https://lbry.io/faq/backup) in case you lose access to your PC or need to [migrate](https://lbry.io/faq/backup-data) to a new one.** +A wallet is a secure, digital wallet used to store, send and receive cryptocurrencies like LBRY Credits(LBC). The LBRY App comes with its own wallet and is stored locally on your computer and nowhere else! **It is critical that you [backup your wallet data](https://lbry.io/faq/how-to-backup-wallet) in case you lose access to your PC or need to [migrate](https://lbry.io/faq/backup-data) to a new one.** In the app, you can find your wallet in the top-right hand corner, next to the bank icon. Clicking it will bring you to the wallet overview page which shows your balance, available Rewards and recent transactions. ![Find wallet](https://spee.ch/6f82ff233910eebeb0f32f69710bd98c6a6bcb2a/walletaccess.png) diff --git a/content/faq/phone.md b/content/faq/phone.md index 4b92fdc3..1ba9f494 100644 --- a/content/faq/phone.md +++ b/content/faq/phone.md @@ -7,7 +7,7 @@ category: other LBRY controls [millions of credits](https://lbry.io/faq/credit-policy) that it wants to get into the hands of content creators and content consumers. -Unfortunately, when you try to give stuff away for free, people will abuse it. +Unfortunately, when running a rewards program, people will abuse it. Phone number verification provides another method for LBRY users to participate in the [rewards](https://lbry.io/faq/rewards) program. diff --git a/content/faq/support.md b/content/faq/support.md index 62ccf63c..31924a25 100644 --- a/content/faq/support.md +++ b/content/faq/support.md @@ -9,7 +9,7 @@ For live help, you can join [our chat](https://chat.lbry.io) and post in the #he ## Help via Email -You can also [email LBRY](mailto:help@lbry.io) with questions or issues. LBRY log files are a good source of information for us; you can learn how to [find them here](https://lbry.io/faq/how-to-find-lbry-log-file). +You can also [email LBRY](mailto:help@lbry.io) with questions or issues. LBRY log files will help us better understand the issue you are experiencing, you can learn how to [find them here](https://lbry.io/faq/how-to-find-lbry-log-file) and attach with your email. ### Reporting Issues diff --git a/content/faq/youtube-terms.md b/content/faq/youtube-terms.md index 1ca809e5..fc6da153 100644 --- a/content/faq/youtube-terms.md +++ b/content/faq/youtube-terms.md @@ -15,11 +15,15 @@ By agreeing to sync your content to the LBRY network, you agree to the terms spe This Agreement lasts twelve (12) months from the date that the Content is uploaded to your Channel on LBRY. After that time, your content will continue to be on the LBRY Network under the terms of this agreement for successive 6-month periods; if you decide to revoke your content, it will be taken down within 30 days of LBRY receiving notice from you. ### 2. Receiving LBRY Credits -Receiving LBRY Credits is considered taxable income in the United States, and may be considered taxable income in your country. If you are a citizen of the United States* and eligible receive over $600 worth of LBC, you will also have to complete tax-related documentation. We will contact you if you are over this threshold. + +Receiving LBRY Credits is considered taxable income in the United States, and may be considered taxable income in your country. If you are a citizen of the United States* and receive over $600 worth of LBC, you will also have to complete tax related documentation. We will contact you if you are over this threshold. + ### 3. Promotional Rights LBRY, Inc. has the right to promote your content and its availability on the LBRY network, and to use the name/likeness/voice of your content in its mailing lists, on its website, on the network itself, and through advertising by any and all means. ### 4. Content Security -LBRY, Inc. makes no promises as to the availability or security of your content. While blockchain entries can expire and no longer accessed by our clients, we make no promises or guarantees that we can fully remove your content from the network, nor that we will keep your content secure. + +LBRY, Inc. makes no promises as to the availability or security of your content. While blockchain entries can expire and may no longer be accessed in our clients, we make no promises or guarantees that we can fully remove your content from the network, nor that we will keep your content secure. + diff --git a/content/faq/youtube.md b/content/faq/youtube.md index f78dff75..28ab8809 100644 --- a/content/faq/youtube.md +++ b/content/faq/youtube.md @@ -3,14 +3,29 @@ title: What is YouTube Sync? category: publisher order: 4 --- + +**Moving your channel onto LBRY** + LBRY offers an easy way for YouTubers to sync their content to the LBRY network, engage with LBRY users, and earn LBC. To sync your existing channel to LBRY and learn more about the program, use the [LBRY.io YouTube Sync page](https://lbry.io/youtube). Authenticating your YouTube channel and other information puts your content into a queue to be automatically mirrored on the LBRY network. This serves as an alternative to moving your entire channel by yourself. The content, its title and description, as well as thumbnails and other metadata, will sync to your channel name. When it is done, you will receive a notice from LBRY indicating your channel is available to view. + When you sync your channel, you are also eligible to receive LBRY Credits in our Partner Program based on your subscriber count. Receiving these credits is subject to a one-year agreement. The exact agreement you make when you sync can be seen [here](https://lbry.io/faq/youtube-terms). The current rewards for syncing can be seen on the [sync page](https://lbry.io/youtube). +**How to Receive Your LBRY Credits** + +- Download the LBRY App at https://lbry.io/get +- Run the LBRY App (this can take a while on your first start up) +- Make sure the email saved in the application matches the email address on your [Sync Status Page](https://lbry.io/youtube/status) +- Click the Bank icon in the upper righthand corner +- Navigate to the Rewards section of your wallet +- Scroll to the "YouTube Reward" claim button +- If you met a particular subscriber threshold, you should receive the appropriate amount of credits. + + If you're having any trouble with the sync process or receiving your credits, please contact [help@lbry.io](mailto:help@lbry.io). diff --git a/content/news/159-lbry-development-community-update-Jan-2018.md b/content/news/159-lbry-development-community-update-Jan-2018.md index 757260b1..f7cb4739 100644 --- a/content/news/159-lbry-development-community-update-Jan-2018.md +++ b/content/news/159-lbry-development-community-update-Jan-2018.md @@ -8,7 +8,7 @@ In December, we published the [first ever LBRY Development and Community update] Please take a moment to read our [Looking Back and Moving Forward: LBRY in 2017/2018](https://lbry.io/news/lbry-in-2017-2018) blog post! -To skip the tech stuff and see what’s happened and what’s next in the LBRY community, click the link below. Otherwise, read on! +To skip the tech stuff, see what’s happened and what’s next in the LBRY community, click the link below. Otherwise, read on! [Skip to **Community Happenings**](#com-updates) @@ -16,10 +16,12 @@ To skip the tech stuff and see what’s happened and what’s next in the LBRY c All of our code is open source and available on [GitHub](https://github.com/lbryio). Are you a dev and want to find out more? Check out our [general contributing guide](https://lbry.io/faq/contributing) and our LBRY App specific contributing [document](https://github.com/lbryio/lbry-app/blob/master/CONTRIBUTING.md). ### App and Protocol Quick Summary -As you may know from our previous update, the LBRY App is undergoing a redesign which is taking up a large chunk of the team’s time, but we still managed to ship multiple patch releases to version 0.19 that enabled users to continue enjoying the main functions of the LBRY app. We also finished off January with [version 0.20](https://github.com/lbryio/lbry-app/releases/tag/v0.20.0) which enables a more streamlined LBRY app update process, phone number verification for [LBRY Rewards](https://lbry.io/faq/rewards) that makes it easier for new users to earn some LBC, added automated dark theme mode, patched a security hole introduced by [Electron](https://electronjs.org/blog/protocol-handler-fix) and a bit of code refactoring. On the protocol side, we ran into a showstopper related to how files are handled and were forced to go back to the drawing board to re-engineer a better solution. Our protocol devs also had to deal with growing pains on [spee.ch](https://spee.ch) which continues to uncover invaluable insights into scaling the LBRY as it’s the biggest user of the protocol to date! +As you may know from our previous update, the LBRY App is undergoing a redesign which is taking up a large chunk of the team’s time, but we still managed to ship multiple patch releases to version 0.19 that enabled users to continue enjoying the main functions of the LBRY app. + +We also finished off January with [version 0.20](https://github.com/lbryio/lbry-app/releases/tag/v0.20.0) which enables a more streamlined LBRY app update process, phone number verification for [LBRY Rewards](https://lbry.io/faq/rewards) that makes it easier for new users to earn some LBC, added automated dark theme mode, patched a security hole introduced by [Electron](https://electronjs.org/blog/protocol-handler-fix) and a bit of code refactoring. On the protocol side, we ran into a showstopper related to how files are handled and were forced to go back to the drawing board to re-engineer a better solution. Our protocol devs also had to deal with growing pains on [spee.ch](https://spee.ch) which continues to uncover invaluable insights into scaling the LBRY as it’s the biggest user of the protocol to date! ### Documentation, Organization and Development Processes -A considerable amount of effort went into documenting an app side [contributing process](https://github.com/lbryio/lbry-app/blob/master/CONTRIBUTING.md) along with [tagging and organization](https://github.com/lbryio/lbry/wiki/Labels) of GitHub issues which required a careful review off all oustanding issues across multiple repositories. The result was a clearer and more organized depiction of what’s on the plate for our developers to work on but it also provides a more welcoming environment for contributors and potential LBRY developers to get started. +A considerable amount of effort went into documenting an app side [contributing process](https://github.com/lbryio/lbry-app/blob/master/CONTRIBUTING.md) along with [tagging and organization](https://github.com/lbryio/lbry/wiki/Labels) of GitHub issues which required a careful review off all outstanding issues across multiple repositories. The result was a clearer and more organized depiction of what’s on the plate for our developers to work on but it also provides a more welcoming environment for contributors and potential LBRY developers to get started. During the past month, we’ve also transitioned to a more agile development methodology we like to call [scrum-lite](https://github.com/lbryio/lbry/wiki/Development-Process-&-Standards) which enables the team to reassess and refocus our efforts on a bi-monthly basis. In addition to creating a more structured framework around development processes, this also forces us to break down large tasks into smaller, easier to tackle initiatives which allows for a transition from “I’m still working on it” to “completed part 1A, onto the next one!”. @@ -49,7 +51,7 @@ LBRY wallet encryption has been enabled in the latest versions of the daemon (no ![Wallet Encryption command line](https://spee.ch/7/walletencryption.png) ### LBRY Rewards Abuse Defenses -Unfortunately, when you try to give away free internet currency, some people will stop at nothing to abuse the system, and as such, we will continue to evolve in order to ramp up defences. We have instituted a new policy that disallows rewards when a VPN/proxy connection is detected and also limit rewards to 1 per household now (previously 1 per person). The 1 LBC email verification reward was removed in a version 19 patch because it was easily abusable. Our wish would be to spend this valuable time on developing the app instead but we also have to be good stewards of LBRY credits that we give out. +Unfortunately, when running a rewards program, some people will stop at nothing to abuse the system, and as such, we will continue to evolve in order to ramp up defences. We have instituted a new policy that disallows rewards when a VPN/proxy connection is detected and also limit rewards to 1 per household now (previously 1 per person). The 1 LBC email verification reward was removed in a version 19 patch because it was easily abusable. Our wish would be to spend this valuable time on developing the app instead but we also have to be good stewards of LBRY credits that we give out. ### New LBRY Rewards Verification Method - SMS In order to provide a more seamless new user experience, version 0.20 of the LBRY app allows users to earn [LBRY rewards](https://lbry.io/faq/rewards) by verifying their phone number over SMS. We will monitor usage and potential abuse over the coming days in order to build a ruleset that minimizes rewards abuse. We also hope that many legitimate users will opt for this method versus our current manual verification which is time consuming for both them and ourselves! @@ -81,7 +83,7 @@ Last year we had a community member named Adrian, from Poland, reach out to us i Last but not least, we also received interest to collaborate with Avery who is part of the [Arizona State University Blockchain Innovation Society](http://asubis.weebly.com/) - initial talks are underway! ### Babson College -Professor [Steven Gordon](http://www.babson.edu/Academics/faculty/profiles/Pages/gordon-steven.aspx) from Babson College, a business school in Massachusettes, found out about LBRY when researching local blockchain projects and imediately contacted us for more information. He created a new class for this semester on Blockchain technology and will feature LBRY as a case study in the curriculum and one of our team members will be on site to assist! +Professor [Steven Gordon](http://www.babson.edu/Academics/faculty/profiles/Pages/gordon-steven.aspx) from Babson College, a business school in Massachusettes, found out about LBRY when researching local blockchain projects and immediately contacted us for more information. He created a new class for this semester on Blockchain technology and will feature LBRY as a case study in the curriculum and one of our team members will be on site to assist! ### lbry.community Initiatives [lbry.community](https://lbry.community/about/) is a completely independent, community run effort to help spread awareness to the importance of the LBRY protocol. We are thrilled at what they have been able to accomplish to date and are extremely excited that they are able to share a vision for LBRY which takes a unique, user focused approach compared to LBRY’s internal one. Recently, the community website went through a redesign which they promoted alongside various contests which included either visual and written requirements as well as simpler [reddit/Twitter initiatives (you can still enter until Feb 6!)](https://lbry.community/category/open-contests/) . The contest entry period ended with [19 video submissions](https://lbry.community/jan-competition-videos/) and [11 written articles](https://lbry.community/contests/), a truly impressive turnout! Contest voting ends on Feb 6, stay tuned for the results! @@ -89,3 +91,5 @@ Professor [Steven Gordon](http://www.babson.edu/Academics/faculty/profiles/Pages If you are interested in helping out, please reach out to @rouse on [Discord](https://chat.lbry.io). [Back to **Development Updates**](#dev-updates) + + diff --git a/content/news/164-if-you-still-havent-found-what-youre-searching-for.md b/content/news/164-if-you-still-havent-found-what-youre-searching-for.md new file mode 100644 index 00000000..7e993b1d --- /dev/null +++ b/content/news/164-if-you-still-havent-found-what-youre-searching-for.md @@ -0,0 +1,18 @@ +--- +author: brinck-slattery +title: 'If you still haven't found what you're searching for...' +date: '2018-03-22 15:45:00' +cover: 'wooden-letters-banner.jpg' +--- +## Hello LBRYians! + +**LBRY v0.21.2** is live, with some major updates to subscriptions and seriously improved search functionality. + +![Subscriptions](https://spee.ch/f/subs-app-drk.png) + +A popup explaining how subscriptions work now appears when users first subscribe to a channel, and subscribing will auto-download most recent content as well as any new content posted to the channel. +Users will also get a popup notification when a new video is added to a channel they're subscribed to. + +We've upgraded the LBRY Protocol from version 0.18.2 to 0.19.1., which should improve reliability and help download performance and a number of other back-end processes. Get caught up on all changes in the release notes for [0.19.0](https://github.com/lbryio/lbry/releases/tag/v0.19.) and [0.19.1](https://github.com/lbryio/lbry/releases/tag/v0.19.1). + +You can read the [full release notes for v0.21.2 here](https://github.com/lbryio/lbry-app/releases). And if you haven't downloaded the app yet, [what are you waiting for](https://lbry.io/get?auto=1)? diff --git a/controller/Controller.class.php b/controller/Controller.class.php index 582bcbdd..ffa50ddb 100644 --- a/controller/Controller.class.php +++ b/controller/Controller.class.php @@ -124,6 +124,7 @@ class Controller $router->post('/youtube/token', 'AcquisitionActions::executeYoutubeToken'); $router->any('/youtube/status/{token}', 'AcquisitionActions::executeYoutubeStatus'); $router->any('/youtube', 'AcquisitionActions::executeYouTube'); + $router->any('/youtube/status', 'AcquisitionActions::executeRedirectYoutube'); $router->get('/verify/{token}', 'AcquisitionActions::executeVerify'); diff --git a/controller/Request.class.php b/controller/Request.class.php index 5e8fec11..5ef4804d 100644 --- a/controller/Request.class.php +++ b/controller/Request.class.php @@ -155,4 +155,8 @@ class Request return preg_match('/(' . join('|', $bots) . ')/i', static::getUserAgent()); } + //Method that encode html tags to special character + public static function encodeStringFromUser($string){ + return htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); + } } diff --git a/controller/action/AcquisitionActions.class.php b/controller/action/AcquisitionActions.class.php index 21ff67f7..e5e8cd79 100644 --- a/controller/action/AcquisitionActions.class.php +++ b/controller/action/AcquisitionActions.class.php @@ -30,7 +30,14 @@ class AcquisitionActions extends Actions public static function executeYouTube() { - return ['acquisition/youtube']; + if(isset($_GET['error_message'])){ + $error_message = Request::encodeStringFromUser($_GET['error_message']); + } + + return ['acquisition/youtube', [ + 'reward' => LBRY::youtubeReward(), + 'error_message' => $error_message ?? '' + ]]; } public static function executeVerify(string $token) @@ -45,7 +52,19 @@ class AcquisitionActions extends Actions public static function executeYoutubeStatus(string $token) { - return ['acquisition/youtube_status', ['token' => $token]]; + if(isset($_GET['error_message'])){ + $error_message = Request::encodeStringFromUser($_GET['error_message']); + } + + $data = LBRY::statusYoutube($token); + if ($data['success'] == false){ + Controller::redirect('/youtube?error=true&error_message=' . $data['error']); + } + return ['acquisition/youtube_status', [ + 'token' => $token, + 'status_token' => $data, + 'error_message' => $error_message ?? '' + ]]; } public static function actionYoutubeToken(string $desired_lbry_channel_name) @@ -55,8 +74,6 @@ class AcquisitionActions extends Actions if ($desired_lbry_channel_name_is_valid) { $token = LBRY::connectYoutube($desired_lbry_channel_name); - var_dump($token); - var_dump($desired_lbry_channel_name); if ($token['success'] == false) { Controller::redirect('/youtube?error=true&error_message=' . $token['error']); } @@ -66,8 +83,9 @@ class AcquisitionActions extends Actions } } - public static function actionYoutubeEdit($status_token, $channel_name, $email, $sync_consent, $current_value) + public static function actionYoutubeEdit($status_token, $channel_name, $email, $sync_consent) { + $current_value = LBRY::statusYoutube($status_token); if($current_value['data']['email'] == $email) { $status = LBRY::editYoutube($status_token, $channel_name, null, $sync_consent); @@ -88,6 +106,10 @@ class AcquisitionActions extends Actions return ['acquisition/youtube_edit']; } + public static function executeRedirectYoutube(){ + return ['acquisition/youtube_status_redirect']; + } + protected static function email_verification($email) { if (preg_match('/\S+@\S+\.\S+/', $email)) { diff --git a/data/i18n/en.yaml b/data/i18n/en.yaml index 44e9b735..ac5e475f 100644 --- a/data/i18n/en.yaml +++ b/data/i18n/en.yaml @@ -6,7 +6,6 @@ # age settings are set to English, and the same label renders as "Assista, Compa # rtilhe, Ganhe" if the user's settings are set to Portuguese. # -# bounty: list: @@ -20,7 +19,6 @@ description: home: Meet LBRY, a content sharing and publishing platform that is decentralized and owned by its users. join: Follow along and receive updates about LBRY via email. learn: Learn more about LBRY, the technology that puts you back in control of the internet. - meetup: LBRY is looking for ambassadors to spread the word to College campuses and Meetup groups worldwide! news: Access information and content in ways you never dreamed possible. Earn credits for your unused bandwidth and diskspace. no-os: Download or install the latest version of LBRY. press: LBRY Press Kit. Information and media for those who want to report on LBRY. @@ -28,6 +26,7 @@ description: team: LBRY is founded by a team passionate about connecting producers and consumers and breaking down broken models. Learn more about them. test: WHAT WHAT what: Access information and content in ways you never dreamed possible. Earn credits for your unused bandwidth and diskspace. + guns: Don't let big tech companies take your rights download: beta: This software is in beta. creator: Creator? Skip the Line @@ -250,6 +249,7 @@ title: refer: Share and Earn what: "Art in the Internet Age: An Introduction to LBRY" meetup: Have LBRY Join Your Next Meetup! + guns: LBRY Fights For Free Speech roadmap: title: LBRY Roadmap description: See past and future progress on development of LBRY, the world's first user-controlled digital marketplace. diff --git a/dev.sh b/dev.sh index 06fe5fb4..891beed6 100755 --- a/dev.sh +++ b/dev.sh @@ -13,4 +13,6 @@ if ! which $PHPBIN 2>/dev/null; then PHPBIN=php fi +$PHPBIN composer.phar install + $PHPBIN --server localhost:8000 --docroot "$DIR/web" "$DIR/web/index.php" diff --git a/docker.sh b/docker.sh index 7bf021df..72f4572c 100755 --- a/docker.sh +++ b/docker.sh @@ -13,4 +13,5 @@ docker run --rm -it --name "dev.lbry.io" \ -p "127.0.0.1:8000:8000" \ -u "$(id -u):$(id -g)" \ php:7-alpine \ - php --server "0.0.0.0:8000" --docroot "web/" "web/index.php" + php composer.phar install + php --server "0.0.0.0:8000" --docroot "web/" "index.php" diff --git a/lib/vendor/Emogrifier.class.php b/lib/vendor/Emogrifier.class.php deleted file mode 100644 index f448fab2..00000000 --- a/lib/vendor/Emogrifier.class.php +++ /dev/null @@ -1,1501 +0,0 @@ - - * @author Roman Ožana - * @author Sander Kruger - */ -class Emogrifier -{ - /** - * @var int - */ - const CACHE_KEY_CSS = 0; - - /** - * @var int - */ - const CACHE_KEY_SELECTOR = 1; - - /** - * @var int - */ - const CACHE_KEY_XPATH = 2; - - /** - * @var int - */ - const CACHE_KEY_CSS_DECLARATIONS_BLOCK = 3; - - /** - * @var int - */ - const CACHE_KEY_COMBINED_STYLES = 4; - - /** - * for calculating nth-of-type and nth-child selectors - * - * @var int - */ - const INDEX = 0; - - /** - * for calculating nth-of-type and nth-child selectors - * - * @var int - */ - const MULTIPLIER = 1; - - /** - * @var string - */ - const ID_ATTRIBUTE_MATCHER = '/(\\w+)?\\#([\\w\\-]+)/'; - - /** - * @var string - */ - const CLASS_ATTRIBUTE_MATCHER = '/(\\w+|[\\*\\]])?((\\.[\\w\\-]+)+)/'; - - /** - * @var string - */ - const CONTENT_TYPE_META_TAG = ''; - - /** - * @var string - */ - const DEFAULT_DOCUMENT_TYPE = ''; - - /** - * @var string - */ - private $html = ''; - - /** - * @var string - */ - private $css = ''; - - /** - * @var bool[] - */ - private $excludedSelectors = []; - - /** - * @var string[] - */ - private $unprocessableHtmlTags = ['wbr']; - - /** - * @var bool[] - */ - private $allowedMediaTypes = ['all' => true, 'screen' => true, 'print' => true]; - - /** - * @var mixed[] - */ - private $caches = [ - self::CACHE_KEY_CSS => [], - self::CACHE_KEY_SELECTOR => [], - self::CACHE_KEY_XPATH => [], - self::CACHE_KEY_CSS_DECLARATIONS_BLOCK => [], - self::CACHE_KEY_COMBINED_STYLES => [], - ]; - - /** - * the visited nodes with the XPath paths as array keys - * - * @var \DOMElement[] - */ - private $visitedNodes = []; - - /** - * the styles to apply to the nodes with the XPath paths as array keys for the outer array - * and the attribute names/values as key/value pairs for the inner array - * - * @var string[][] - */ - private $styleAttributesForNodes = []; - - /** - * Determines whether the "style" attributes of tags in the the HTML passed to this class should be preserved. - * If set to false, the value of the style attributes will be discarded. - * - * @var bool - */ - private $isInlineStyleAttributesParsingEnabled = true; - - /** - * Determines whether the