diff --git a/.gitignore b/.gitignore index 424bc20..ea712b5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,18 @@ /build/ /vendor/ -/cache/* -/logs/* -silex.log /config/parameters.yml /.vagrant node_modules/ web/css/* web/img/* web/js/* +/.phpunit.result.cache +/var/ +!/var/.gitkeep +###> symfony/webpack-encore-bundle ### +/node_modules/ +/web/build/ +npm-debug.log +yarn-error.log +###< symfony/webpack-encore-bundle ### diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2ce21e9 --- /dev/null +++ b/Makefile @@ -0,0 +1,30 @@ +ENV?=dev + +help: ## Show help + @echo + @echo "Usage: make [target]" + @echo + @printf "\033[1;93mAvailable targets:\033[0m\n" + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-30s\033[0m %s\n", $$1, $$2}' + @echo + +install: vendor node_modules build-assets ## Install all project dependencies + +build-assets: ## Build JS, CSS and images + node_modules/.bin/encore $(ENV) + +vendor: composer.json composer.lock + composer install + +node_modules: package.json + npm install + +unit-tests: ## Run unit tests + vendor/bin/phpunit + +lint: + bin/console lint:twig templates/ + +test: unit-tests lint + +.PHONY: help install build-assets unit-tests lint test diff --git a/README.md b/README.md index 785f824..af0260f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # AmsterdamPHP - Meetup.com Raffler -This application enables us to raffle off stuff to our meetup attendees. It uses the Meetup.com API to get all check ins, and then uses the Random.org API to randomly select winners. +This application enables us to raffle off stuff to our meetup attendees. It uses the Meetup.com API to get all check ins, and then randomly selects winners. ## Installation @@ -9,50 +9,49 @@ This application enables us to raffle off stuff to our meetup attendees. It uses Ensure that [VirtualBox](https://www.virtualbox.org), [Vagrant](http://www.vagrantup.com), and [Ansible](http://www.ansible.com) are installed. 1. `git clone git@github.com:AmsterdamPHP/meetup-raffle-machine.git --recursive` -2. run `vagrant up` -3. create config/parameters.yml (get your API key from [meetup.com](https://secure.meetup.com/meetup_api/key/)) +1. run `vagrant up` +1. create `config/parameters.yml` (get your API key from [meetup.com](https://secure.meetup.com/meetup_api/key/)) ``` - meetup_group: amsterdamphp - meetup_api_key: YOUR_MEETUP_API_KEY + parameters: + meetup_group: amsterdamphp + meetup_api_key: YOUR_MEETUP_API_KEY + secret: SomeRandomSecretToSeedSymfony + redis_dsn: redis://localhost ``` +1. Add the following to your hosts file: `10.10.10.10 raffler.local` -All done! Now you can access the application at [http://app.local/](http://app.local/). +All done! Now you can access the application at [http://raffler.local/](http://raffler.local/). ### Install directly onto your host machine. 1. Get code -2. Give permissions +1. Give permissions ``` sudo chmod -Rf +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" cache logs sudo chmod -Rf +a " allow delete,write,append,file_inherit,directory_inherit" cache logs ``` -3. Install Dependencies +1. Install Dependencies ``` - composer install - npm install + make install ``` - -4. Compile assets - - ``` - ./node_modules/.bin/gulp - ``` - -5. Create config/parameters.yml +1. Create config/parameters.yml ``` - meetup_group: amsterdamphp - meetup_api_key: YOUR_MEETUP_API_KEY + parameters: + meetup_group: amsterdamphp + meetup_api_key: YOUR_MEETUP_API_KEY + secret: SomeRandomSecretToSeedSymfony + redis_dsn: redis://localhost ``` ## How to use it 1. Open the app index page to be presented with a list of meetups. -2. Click on a meetup. -3. Press [space] or [page down] to start raffles. +1. Click on a meetup. +1. Press [space] or [page down] to start raffles. The page down key allows us to use most presentation remotes as well. diff --git a/Vagrantfile b/Vagrantfile index a94386d..a06da45 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,53 +1,41 @@ -# vagrant init ubuntu/trusty64 +# vagrant init ubuntu/xenial64 Vagrant.configure("2") do |config| - config.vm.box = "trusty64" - config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box" + config.vm.box = "ubuntu/xenial64" config.vm.network :private_network, ip: "10.10.10.10" - config.vm.hostname = "app.local" config.vm.provider :virtualbox do |v| v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] v.customize ["modifyvm", :id, "--memory", 1024] - v.customize ["modifyvm", :id, "--name", "Meetup Raffle Machine"] + v.customize ["modifyvm", :id, "--name", "AmsterdamPHP Raffler"] end - config.vm.provider :libvirt do |domain| - domain.memory = 1024 + config.vm.provision "shell" do |s| + s.inline = "sudo apt-get update && sudo apt-get install -y python" end - if (/linux/ =~ RUBY_PLATFORM) != nil - config.vm.synced_folder "./", "/vagrant", id: "vagrant-root", nfs: true, :linux__nfs_options => ['rw','no_subtree_check','all_squash','async'] - else - config.vm.synced_folder "./", "/vagrant", id: "vagrant-root", :nfs => true - end - - if not Vagrant.has_plugin?("vagrant-hostmanager") - if system "vagrant plugin install vagrant-hostmanager" - exec "vagrant #{ARGV.join(' ')}" - else - abort "Aborting due to plugin installation failure." - end - end - - config.hostmanager.enabled = true - config.hostmanager.manage_host = true - config.hostmanager.include_offline = true - config.vm.provision "ansible" do |ansible| ansible.playbook = "ansible/provision.yml" ansible.extra_vars = { - hostname: "dev", + hostname: "raffler", dbuser: "root", dbpasswd: "password", databases: ["development"], sites: [ { - hostname: "app.local", + hostname: "raffler.local", document_root: "/vagrant/web" } ], + php_configs: [ + ], + install_postgresql: "no", + postgresql_version: "9.5", + postgresql_user: "root", + postgresql_passwd: "password", + postgresql_databases: ["development"], + install_gems: [], install_db: "no", install_ohmyzsh: "yes", install_web: "yes", @@ -55,9 +43,20 @@ Vagrant.configure("2") do |config| install_hhvm: "no", install_beanstalkd: "no", install_redis: "yes", - install_javascript_build_system: "yes" + install_javascript_build_system: "yes", + install_r: "no", + install_rabbit_mq: "no", + r_packages: [], + enable_swap: "yes", + swap_size_in_mb: "1024", + install_eventstore: "no", + eventstore_version: "3.0.1", + eventstore_bind_ip: "10.10.10.10", + eventstore_http_prefix: "http://app.local:2113/" } end - config.vm.provision "shell", path: "post-install.sh" + config.vm.provision "shell" do |s| + s.inline = "cd /vagrant; make install" + end end diff --git a/ansible b/ansible index 536a412..83b335f 160000 --- a/ansible +++ b/ansible @@ -1 +1 @@ -Subproject commit 536a412e3f2b7b1a485b8a9fa5342ae116a2d8fc +Subproject commit 83b335f463b5149f15912c5c9963797a5d8589dd diff --git a/assets/css/app.css b/assets/css/app.css new file mode 100644 index 0000000..cb33b13 --- /dev/null +++ b/assets/css/app.css @@ -0,0 +1,3 @@ +body { + background-color: lightgray; +} diff --git a/assets/js/app.js b/assets/js/app.js new file mode 100644 index 0000000..0648e87 --- /dev/null +++ b/assets/js/app.js @@ -0,0 +1,14 @@ +/* + * Welcome to your app's main JavaScript file! + * + * We recommend including the built version of this JavaScript file + * (and its CSS file) in your base layout (base.html.twig). + */ + +// any CSS you require will output into a single css file (app.css in this case) +require('../css/app.css'); + +// Need jQuery? Install it with "yarn add jquery", then uncomment to require it. +// const $ = require('jquery'); + +console.log('Hello Webpack Encore! Edit me in assets/js/app.js'); diff --git a/bin/console b/bin/console new file mode 100755 index 0000000..19c2f6c --- /dev/null +++ b/bin/console @@ -0,0 +1,42 @@ +#!/usr/bin/env php +getParameterOption(['--env', '-e'], null, true)) { + putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env); +} + +if ($input->hasParameterOption('--no-debug', true)) { + putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0'); +} + +require dirname(__DIR__).'/config/bootstrap.php'; + +if ($_SERVER['APP_DEBUG']) { + umask(0000); + + if (class_exists(Debug::class)) { + Debug::enable(); + } +} + +$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); +$application = new Application($kernel); +$application->run($input); diff --git a/cache/.gitkeep b/cache/.gitkeep deleted file mode 100755 index e69de29..0000000 diff --git a/circle.yml b/circle.yml index 71d9d4e..0240ecd 100644 --- a/circle.yml +++ b/circle.yml @@ -1,19 +1,19 @@ machine: php: - version: 7.0.4 + version: 7.2 dependencies: override: - composer install --dev --no-progress --no-interaction --prefer-dist - npm install - - ./node_modules/.bin/gulp + - node_modules/.bin/encore prod post: - mkdir -p $CIRCLE_TEST_REPORTS/phpunit test: override: - - ./vendor/bin/phpunit --log-junit $CIRCLE_TEST_REPORTS/phpunit/junit.xml + - make test deployment: production: diff --git a/composer.json b/composer.json index 3f0bb6a..bbfc776 100644 --- a/composer.json +++ b/composer.json @@ -1,43 +1,73 @@ { "name": "amsterdamphp/meetup-raffle-machine", - + "type": "project", + "license": "proprietary", + "require": { + "php": "^7.2", + "ext-ctype": "*", + "ext-iconv": "*", + "dms/meetup-api-client": "^2.3", + "ircmaxell/random-lib": "^1.2", + "predis/predis": "^1.1", + "sensio/framework-extra-bundle": "^5.3", + "snc/redis-bundle": "^2.1", + "symfony/console": "4.3.*", + "symfony/debug-pack": "^1.0", + "symfony/dotenv": "4.3.*", + "symfony/flex": "^1.1", + "symfony/framework-bundle": "4.3.*", + "symfony/monolog-bundle": "^3.4", + "symfony/twig-bundle": "4.3.*", + "symfony/webpack-encore-bundle": "^1.6", + "symfony/yaml": "4.3.*" + }, + "config": { + "preferred-install": { + "*": "dist" + }, + "sort-packages": true + }, "autoload": { - "psr-0": { "": "src/" } + "psr-4": { + "App\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "App\\Tests\\": "tests/" + } + }, + "replace": { + "paragonie/random_compat": "2.*", + "symfony/polyfill-ctype": "*", + "symfony/polyfill-iconv": "*", + "symfony/polyfill-php71": "*", + "symfony/polyfill-php70": "*", + "symfony/polyfill-php56": "*" + }, + "scripts": { + "auto-scripts": { + "cache:clear": "symfony-cmd", + "assets:install %PUBLIC_DIR%": "symfony-cmd" + }, + "post-install-cmd": [ + "@auto-scripts" + ], + "post-update-cmd": [ + "@auto-scripts" + ] + }, + "conflict": { + "symfony/symfony": "*" + }, + "extra": { + "symfony": { + "allow-contrib": false, + "require": "4.3.*" + }, + "public-dir": "web/" }, - - "require": { - "php": ">=5.3.3", - - "silex/silex": "^1.0", - "twig/twig": ">=1.8.0,<2.0-dev", - "monolog/monolog": ">=1.0.0,<1.2-dev", - - "symfony/browser-kit": "^2.1", - "symfony/class-loader": "^2.1", - "symfony/config": "^2.1", - "symfony/console": "^2.1", - "symfony/css-selector": "^2.1", - "symfony/finder": "^2.1", - "symfony/form": "^2.1", - "symfony/monolog-bridge": "^2.1", - "symfony/process": "^2.1", - "symfony/security": "^2.1", - "symfony/translation": "^2.1", - "symfony/twig-bridge": "^2.1", - "symfony/validator": "^2.1", - "symfony/yaml": "^2.1", - - "dms/meetup-api-client": "~1.0@dev", - "predis/predis": "~0.8", - "ircmaxell/random-lib": "^1.1" - - }, - - "repositories": [ - ], "require-dev": { - "deployer/deployer": "^4@dev", - "symfony/var-dumper": "^3.1", - "phpunit/phpunit": "^5.4" + "phpunit/phpunit": "^8.2" } } diff --git a/composer.lock b/composer.lock index 5116c49..ac6a18a 100644 --- a/composer.lock +++ b/composer.lock @@ -1,45 +1,49 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "hash": "e7dacbd175088d27aa6eb7a707d09c6c", - "content-hash": "4555fc515f54654df2c229a515a99052", + "content-hash": "989c7826bf6cb5bfb4ab06b38205c60b", "packages": [ { "name": "dms/meetup-api-client", - "version": "v1.3.0", + "version": "v2.3.1", "source": { "type": "git", "url": "https://github.com/rdohms/meetup-api-client.git", - "reference": "cf9fce4cd96ea633fb59dee57d740097ec1d24f7" + "reference": "6abb76a6f8ee4c638569ba712c37114a04c8a824" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rdohms/meetup-api-client/zipball/cf9fce4cd96ea633fb59dee57d740097ec1d24f7", - "reference": "cf9fce4cd96ea633fb59dee57d740097ec1d24f7", + "url": "https://api.github.com/repos/rdohms/meetup-api-client/zipball/6abb76a6f8ee4c638569ba712c37114a04c8a824", + "reference": "6abb76a6f8ee4c638569ba712c37114a04c8a824", "shasum": "" }, "require": { - "guzzle/guzzle": "~3.7" + "guzzle/guzzle": "~3.7", + "php": "^5.3.10 | ^7.0" }, "require-dev": { - "phpunit/phpunit": "~3.7", + "mathiasgrimm/arraypath": "~1.3", + "phpunit/phpunit": "^4.8", "symfony/console": "~2.2", "symfony/css-selector": "~2.2", - "symfony/dom-crawler": "~2.2" + "symfony/dom-crawler": "~2.2", + "symfony/var-dumper": "~2.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-0": { - "DMS": "src/", - "Test": "tests/" + "DMS": [ + "src/", + "tests/" + ] } }, "notification-url": "https://packagist.org/downloads/", @@ -59,73 +63,39 @@ "dms", "meetup.com" ], - "time": "2014-12-30 10:52:03" + "time": "2017-12-26T11:05:37+00:00" }, { - "name": "guzzle/guzzle", - "version": "v3.9.3", + "name": "doctrine/annotations", + "version": "v1.6.1", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle3.git", - "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9" + "url": "https://github.com/doctrine/annotations.git", + "reference": "53120e0eb10355388d6ccbe462f1fea34ddadb24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9", - "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/53120e0eb10355388d6ccbe462f1fea34ddadb24", + "reference": "53120e0eb10355388d6ccbe462f1fea34ddadb24", "shasum": "" }, "require": { - "ext-curl": "*", - "php": ">=5.3.3", - "symfony/event-dispatcher": "~2.1" - }, - "replace": { - "guzzle/batch": "self.version", - "guzzle/cache": "self.version", - "guzzle/common": "self.version", - "guzzle/http": "self.version", - "guzzle/inflection": "self.version", - "guzzle/iterator": "self.version", - "guzzle/log": "self.version", - "guzzle/parser": "self.version", - "guzzle/plugin": "self.version", - "guzzle/plugin-async": "self.version", - "guzzle/plugin-backoff": "self.version", - "guzzle/plugin-cache": "self.version", - "guzzle/plugin-cookie": "self.version", - "guzzle/plugin-curlauth": "self.version", - "guzzle/plugin-error-response": "self.version", - "guzzle/plugin-history": "self.version", - "guzzle/plugin-log": "self.version", - "guzzle/plugin-md5": "self.version", - "guzzle/plugin-mock": "self.version", - "guzzle/plugin-oauth": "self.version", - "guzzle/service": "self.version", - "guzzle/stream": "self.version" + "doctrine/lexer": "1.*", + "php": "^7.1" }, "require-dev": { - "doctrine/cache": "~1.3", - "monolog/monolog": "~1.0", - "phpunit/phpunit": "3.7.*", - "psr/log": "~1.0", - "symfony/class-loader": "~2.1", - "zendframework/zend-cache": "2.*,<2.3", - "zendframework/zend-log": "2.*,<2.3" - }, - "suggest": { - "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated." + "doctrine/cache": "1.*", + "phpunit/phpunit": "^6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.9-dev" + "dev-master": "1.6.x-dev" } }, "autoload": { - "psr-0": { - "Guzzle": "src/", - "Guzzle\\Tests": "tests/" + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" } }, "notification-url": "https://packagist.org/downloads/", @@ -134,60 +104,74 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Roman Borschel", + "email": "roman@code-factory.org" }, { - "name": "Guzzle Community", - "homepage": "https://github.com/guzzle/guzzle/contributors" + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], - "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle", - "homepage": "http://guzzlephp.org/", + "description": "Docblock Annotations Parser", + "homepage": "http://www.doctrine-project.org", "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" + "annotations", + "docblock", + "parser" ], - "abandoned": "guzzlehttp/guzzle", - "time": "2015-03-18 18:23:50" + "time": "2019-03-25T19:12:02+00:00" }, { - "name": "ircmaxell/random-lib", - "version": "v1.1.0", + "name": "doctrine/cache", + "version": "v1.8.0", "source": { "type": "git", - "url": "https://github.com/ircmaxell/RandomLib.git", - "reference": "13efa4368bb2ac88bb3b1459b487d907de4dbf7c" + "url": "https://github.com/doctrine/cache.git", + "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ircmaxell/RandomLib/zipball/13efa4368bb2ac88bb3b1459b487d907de4dbf7c", - "reference": "13efa4368bb2ac88bb3b1459b487d907de4dbf7c", + "url": "https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57", + "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57", "shasum": "" }, "require": { - "ircmaxell/security-lib": "1.0.*@dev", - "php": ">=5.3.2" + "php": "~7.1" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" }, "require-dev": { - "mikey179/vfsstream": "1.1.*", - "phpunit/phpunit": "3.7.*" + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^4.0", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0", + "predis/predis": "~1.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.8.x-dev" } }, "autoload": { - "psr-0": { - "RandomLib": "lib" + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" } }, "notification-url": "https://packagist.org/downloads/", @@ -196,45 +180,66 @@ ], "authors": [ { - "name": "Anthony Ferrara", - "email": "ircmaxell@ircmaxell.com", - "homepage": "http://blog.ircmaxell.com" + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], - "description": "A Library For Generating Secure Random Numbers", - "homepage": "https://github.com/ircmaxell/RandomLib", + "description": "Caching library offering an object-oriented API for many cache backends", + "homepage": "https://www.doctrine-project.org", "keywords": [ - "cryptography", - "random", - "random-numbers", - "random-strings" + "cache", + "caching" ], - "time": "2015-01-15 16:31:45" + "time": "2018-08-21T18:01:43+00:00" }, { - "name": "ircmaxell/security-lib", - "version": "1.0.0", + "name": "doctrine/collections", + "version": "v1.6.2", "source": { "type": "git", - "url": "https://github.com/ircmaxell/SecurityLib.git", - "reference": "80934de3c482dcafb46b5756e59ebece082b6dc7" + "url": "https://github.com/doctrine/collections.git", + "reference": "c5e0bc17b1620e97c968ac409acbff28b8b850be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ircmaxell/SecurityLib/zipball/80934de3c482dcafb46b5756e59ebece082b6dc7", - "reference": "80934de3c482dcafb46b5756e59ebece082b6dc7", + "url": "https://api.github.com/repos/doctrine/collections/zipball/c5e0bc17b1620e97c968ac409acbff28b8b850be", + "reference": "c5e0bc17b1620e97c968ac409acbff28b8b850be", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.1.3" }, "require-dev": { - "mikey179/vfsstream": "1.1.*" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan-shim": "^0.9.2", + "phpunit/phpunit": "^7.0", + "vimeo/psalm": "^3.2.2" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, "autoload": { - "psr-0": { - "SecurityLib": "lib" + "psr-4": { + "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" } }, "notification-url": "https://packagist.org/downloads/", @@ -243,42 +248,69 @@ ], "authors": [ { - "name": "Anthony Ferrara", - "email": "ircmaxell@ircmaxell.com", - "homepage": "http://blog.ircmaxell.com" + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], - "description": "A Base Security Library", - "homepage": "https://github.com/ircmaxell/PHP-SecurityLib", - "time": "2013-04-30 18:00:34" + "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", + "homepage": "https://www.doctrine-project.org/projects/collections.html", + "keywords": [ + "array", + "collections", + "iterators", + "php" + ], + "time": "2019-06-09T13:48:14+00:00" }, { - "name": "monolog/monolog", - "version": "1.1.0", + "name": "doctrine/event-manager", + "version": "v1.0.0", "source": { "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "abc80e0db8ad31c03b373977fc997e980800f9c2" + "url": "https://github.com/doctrine/event-manager.git", + "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/abc80e0db8ad31c03b373977fc997e980800f9c2", - "reference": "abc80e0db8ad31c03b373977fc997e980800f9c2", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3", + "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.1" }, - "require-dev": { - "mlehner/gelf-php": "1.0.*" + "conflict": { + "doctrine/common": "<2.9@dev" }, - "suggest": { - "mlehner/gelf-php": "Allow sending log messages to a GrayLog2 server" + "require-dev": { + "doctrine/coding-standard": "^4.0", + "phpunit/phpunit": "^7.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { - "psr-0": { - "Monolog": "src/" + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" } }, "notification-url": "https://packagist.org/downloads/", @@ -287,46 +319,68 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be", - "role": "Developer" + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Logging for PHP 5.3", - "homepage": "http://github.com/Seldaek/monolog", + "description": "Doctrine Event Manager component", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", "keywords": [ - "log", - "logging" + "event", + "eventdispatcher", + "eventmanager" ], - "time": "2012-04-23 16:27:40" + "time": "2018-06-11T11:59:03+00:00" }, { - "name": "pimple/pimple", - "version": "v1.1.1", + "name": "doctrine/lexer", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/silexphp/Pimple.git", - "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d" + "url": "https://github.com/doctrine/lexer.git", + "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/silexphp/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d", - "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "^4.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "psr-0": { - "Pimple": "lib/" + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } }, "notification-url": "https://packagist.org/downloads/", @@ -335,46 +389,68 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], - "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", - "homepage": "http://pimple.sensiolabs.org", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ - "container", - "dependency injection" + "annotations", + "docblock", + "lexer", + "parser", + "php" ], - "time": "2013-11-22 08:30:29" + "time": "2019-06-08T11:03:04+00:00" }, { - "name": "predis/predis", - "version": "v0.8.7", + "name": "doctrine/persistence", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/nrk/predis.git", - "reference": "4123fcd85d61354c6c9900db76c9597dbd129bf6" + "url": "https://github.com/doctrine/persistence.git", + "reference": "3da7c9d125591ca83944f477e65ed3d7b4617c48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nrk/predis/zipball/4123fcd85d61354c6c9900db76c9597dbd129bf6", - "reference": "4123fcd85d61354c6c9900db76c9597dbd129bf6", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/3da7c9d125591ca83944f477e65ed3d7b4617c48", + "reference": "3da7c9d125591ca83944f477e65ed3d7b4617c48", "shasum": "" }, "require": { - "php": ">=5.3.2" + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/reflection": "^1.0", + "php": "^7.1" }, - "require-dev": { - "phpunit/phpunit": "~4.0" + "conflict": { + "doctrine/common": "<2.10@dev" }, - "suggest": { - "ext-curl": "Allows access to Webdis when paired with phpiredis", - "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol" + "require-dev": { + "doctrine/coding-standard": "^5.0", + "phpstan/phpstan": "^0.8", + "phpunit/phpunit": "^7.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, "autoload": { - "psr-0": { - "Predis": "lib/" + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" } }, "notification-url": "https://packagist.org/downloads/", @@ -383,68 +459,67 @@ ], "authors": [ { - "name": "Daniele Alessandri", - "email": "suppakilla@gmail.com", - "homepage": "http://clorophilla.net" + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Flexible and feature-complete PHP client library for Redis", - "homepage": "http://github.com/nrk/predis", + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://doctrine-project.org/projects/persistence.html", "keywords": [ - "nosql", - "predis", - "redis" + "mapper", + "object", + "odm", + "orm", + "persistence" ], - "time": "2014-08-01 09:43:10" + "time": "2019-04-23T08:28:24+00:00" }, { - "name": "silex/silex", - "version": "v1.0.2", + "name": "doctrine/reflection", + "version": "v1.0.0", "source": { "type": "git", - "url": "https://github.com/silexphp/Silex.git", - "reference": "89d5ed3cbfebc83145c9c345e286fee190a271b7" + "url": "https://github.com/doctrine/reflection.git", + "reference": "02538d3f95e88eb397a5f86274deb2c6175c2ab6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/silexphp/Silex/zipball/89d5ed3cbfebc83145c9c345e286fee190a271b7", - "reference": "89d5ed3cbfebc83145c9c345e286fee190a271b7", + "url": "https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6", + "reference": "02538d3f95e88eb397a5f86274deb2c6175c2ab6", "shasum": "" }, "require": { - "php": ">=5.3.3", - "pimple/pimple": "1.*", - "symfony/event-dispatcher": ">=2.1,<2.4-dev", - "symfony/http-foundation": ">=2.1,<2.4-dev", - "symfony/http-kernel": ">=2.1,<2.4-dev", - "symfony/routing": ">=2.1,<2.4-dev" + "doctrine/annotations": "^1.0", + "ext-tokenizer": "*", + "php": "^7.1" }, "require-dev": { - "doctrine/dbal": ">=2.2.0,<2.4.0-dev", - "monolog/monolog": "~1.4,>=1.4.1", - "swiftmailer/swiftmailer": "5.*", - "symfony/browser-kit": ">=2.1,<2.4-dev", - "symfony/config": ">=2.1,<2.4-dev", - "symfony/css-selector": ">=2.1,<2.4-dev", - "symfony/dom-crawler": ">=2.1,<2.4-dev", - "symfony/finder": ">=2.1,<2.4-dev", - "symfony/form": ">=2.1.4,<2.4-dev", - "symfony/locale": ">=2.1,<2.4-dev", - "symfony/monolog-bridge": ">=2.1,<2.4-dev", - "symfony/options-resolver": ">=2.1,<2.4-dev", - "symfony/process": ">=2.1,<2.4-dev", - "symfony/security": ">=2.1,<2.4-dev", - "symfony/serializer": ">=2.1,<2.4-dev", - "symfony/translation": ">=2.1,<2.4-dev", - "symfony/twig-bridge": ">=2.1,<2.4-dev", - "symfony/validator": ">=2.1,<2.4-dev", - "twig/twig": ">=1.8.0,<2.0-dev" - }, - "suggest": { - "symfony/browser-kit": ">=2.1,<2.4-dev", - "symfony/css-selector": ">=2.1,<2.4-dev", - "symfony/dom-crawler": ">=2.1,<2.4-dev", - "symfony/form": ">= 2.1.4,<2.4-dev" + "doctrine/coding-standard": "^4.0", + "doctrine/common": "^2.8", + "phpstan/phpstan": "^0.9.2", + "phpstan/phpstan-phpunit": "^0.9.4", + "phpunit/phpunit": "^7.0", + "squizlabs/php_codesniffer": "^3.0" }, "type": "library", "extra": { @@ -453,8 +528,8 @@ } }, "autoload": { - "psr-0": { - "Silex": "src/" + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" } }, "notification-url": "https://packagist.org/downloads/", @@ -463,62 +538,61 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" }, { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch", - "homepage": "http://wiedler.ch/igor/" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "The PHP micro-framework based on the Symfony2 Components", - "homepage": "http://silex.sensiolabs.org", + "description": "Doctrine Reflection component", + "homepage": "https://www.doctrine-project.org/projects/reflection.html", "keywords": [ - "microframework" + "reflection" ], - "time": "2013-10-30 08:45:28" + "time": "2018-06-14T14:45:07+00:00" }, { - "name": "symfony/browser-kit", - "version": "v2.8.4", + "name": "easycorp/easy-log-handler", + "version": "v1.0.7", "source": { "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "745c19467255cf32eaf311f000eecafd83ca5586" + "url": "https://github.com/EasyCorp/easy-log-handler.git", + "reference": "5f95717248d20684f88cfb878d8bf3d78aadcbba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/745c19467255cf32eaf311f000eecafd83ca5586", - "reference": "745c19467255cf32eaf311f000eecafd83ca5586", + "url": "https://api.github.com/repos/EasyCorp/easy-log-handler/zipball/5f95717248d20684f88cfb878d8bf3d78aadcbba", + "reference": "5f95717248d20684f88cfb878d8bf3d78aadcbba", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/dom-crawler": "~2.0,>=2.0.5|~3.0.0" - }, - "require-dev": { - "symfony/css-selector": "~2.0,>=2.0.5|~3.0.0", - "symfony/process": "~2.3.34|~2.7,>=2.7.6|~3.0.0" - }, - "suggest": { - "symfony/process": "" + "monolog/monolog": "~1.6", + "php": ">=5.3.0", + "symfony/yaml": "~2.3|~3.0|~4.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, "autoload": { "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "EasyCorp\\EasyLog\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -526,105 +600,88 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Javier Eguiluz", + "email": "javiereguiluz@gmail.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Project Contributors", + "homepage": "https://github.com/EasyCorp/easy-log-handler" } ], - "description": "Symfony BrowserKit Component", - "homepage": "https://symfony.com", - "time": "2016-03-04 07:54:35" + "description": "A handler for Monolog that optimizes log messages to be processed by humans instead of software. Improve your productivity with logs that are easy to understand.", + "homepage": "https://github.com/EasyCorp/easy-log-handler", + "keywords": [ + "easy", + "log", + "logging", + "monolog", + "productivity" + ], + "time": "2018-07-27T15:41:37+00:00" }, { - "name": "symfony/class-loader", - "version": "v2.8.4", + "name": "guzzle/guzzle", + "version": "v3.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/class-loader.git", - "reference": "7d362c22710980730d46a5d039e788946a2938cb" + "url": "https://github.com/guzzle/guzzle.git", + "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/7d362c22710980730d46a5d039e788946a2938cb", - "reference": "7d362c22710980730d46a5d039e788946a2938cb", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/4de0618a01b34aa1c8c33a3f13f396dcd3882eba", + "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-apcu": "~1.1" - }, - "require-dev": { - "symfony/finder": "~2.0,>=2.0.5|~3.0.0" + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": ">=2.1" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\ClassLoader\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony ClassLoader Component", - "homepage": "https://symfony.com", - "time": "2016-03-10 19:33:53" - }, - { - "name": "symfony/config", - "version": "v2.8.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "5273f4724dc5288fe7a33cb08077ab9852621f2c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/5273f4724dc5288fe7a33cb08077ab9852621f2c", - "reference": "5273f4724dc5288fe7a33cb08077ab9852621f2c", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/filesystem": "~2.3|~3.0.0" + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "<2.3", + "zendframework/zend-log": "<2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.8-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "psr-0": { + "Guzzle": "src/", + "Guzzle\\Tests": "tests/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -632,59 +689,62 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" } ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "time": "2016-03-04 07:54:35" + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "abandoned": "guzzlehttp/guzzle", + "time": "2014-01-28T22:29:15+00:00" }, { - "name": "symfony/console", - "version": "v2.8.4", + "name": "ircmaxell/random-lib", + "version": "v1.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "9a5aef5fc0d4eff86853d44202b02be8d5a20154" + "url": "https://github.com/ircmaxell/RandomLib.git", + "reference": "e9e0204f40e49fa4419946c677eccd3fa25b8cf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9a5aef5fc0d4eff86853d44202b02be8d5a20154", - "reference": "9a5aef5fc0d4eff86853d44202b02be8d5a20154", + "url": "https://api.github.com/repos/ircmaxell/RandomLib/zipball/e9e0204f40e49fa4419946c677eccd3fa25b8cf4", + "reference": "e9e0204f40e49fa4419946c677eccd3fa25b8cf4", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-mbstring": "~1.0" + "ircmaxell/security-lib": "^1.1", + "php": ">=5.3.2" }, "require-dev": { - "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.1|~3.0.0", - "symfony/process": "~2.1|~3.0.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/process": "" + "friendsofphp/php-cs-fixer": "^1.11", + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": "^4.8|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "psr-0": { + "RandomLib": "lib" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -692,48 +752,51 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Anthony Ferrara", + "email": "ircmaxell@ircmaxell.com", + "homepage": "http://blog.ircmaxell.com" } ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2016-03-17 09:19:04" + "description": "A Library For Generating Secure Random Numbers", + "homepage": "https://github.com/ircmaxell/RandomLib", + "keywords": [ + "cryptography", + "random", + "random-numbers", + "random-strings" + ], + "time": "2016-09-07T15:52:06+00:00" }, { - "name": "symfony/css-selector", - "version": "v2.8.4", + "name": "ircmaxell/security-lib", + "version": "v1.1.0", "source": { "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "07b7ced3ae0c12918477c095453ea8595000810e" + "url": "https://github.com/ircmaxell/SecurityLib.git", + "reference": "f3db6de12c20c9bcd1aa3db4353a1bbe0e44e1b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/07b7ced3ae0c12918477c095453ea8595000810e", - "reference": "07b7ced3ae0c12918477c095453ea8595000810e", + "url": "https://api.github.com/repos/ircmaxell/SecurityLib/zipball/f3db6de12c20c9bcd1aa3db4353a1bbe0e44e1b5", + "reference": "f3db6de12c20c9bcd1aa3db4353a1bbe0e44e1b5", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.3.2" + }, + "require-dev": { + "mikey179/vfsstream": "1.1.*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "psr-0": { + "SecurityLib": "lib" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -741,59 +804,72 @@ ], "authors": [ { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Anthony Ferrara", + "email": "ircmaxell@ircmaxell.com", + "homepage": "http://blog.ircmaxell.com" } ], - "description": "Symfony CssSelector Component", - "homepage": "https://symfony.com", - "time": "2016-03-04 07:54:35" + "description": "A Base Security Library", + "homepage": "https://github.com/ircmaxell/SecurityLib", + "time": "2015-03-20T14:31:23+00:00" }, { - "name": "symfony/dom-crawler", - "version": "v3.0.4", + "name": "monolog/monolog", + "version": "1.24.0", "source": { "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "18a06d7a9af41718c20764a674a0ebba3bc40d1f" + "url": "https://github.com/Seldaek/monolog.git", + "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/18a06d7a9af41718c20764a674a0ebba3bc40d1f", - "reference": "18a06d7a9af41718c20764a674a0ebba3bc40d1f", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", + "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" }, "require-dev": { - "symfony/css-selector": "~2.8|~3.0" + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "jakub-onderka/php-parallel-lint": "0.9", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "2.3.0", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { - "symfony/css-selector": "" + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Monolog\\": "src/Monolog" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -801,47 +877,48 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" } ], - "description": "Symfony DomCrawler Component", - "homepage": "https://symfony.com", - "time": "2016-03-23 13:23:25" + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2018-11-05T09:00:11+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v2.1.13", - "target-dir": "Symfony/Component/EventDispatcher", + "name": "predis/predis", + "version": "v1.1.1", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "e1d18ff0ff6f3e45ac82f000bc221135df635527" + "url": "https://github.com/nrk/predis.git", + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e1d18ff0ff6f3e45ac82f000bc221135df635527", - "reference": "e1d18ff0ff6f3e45ac82f000bc221135df635527", + "url": "https://api.github.com/repos/nrk/predis/zipball/f0210e38881631afeafb56ab43405a92cafd9fd1", + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "require-dev": { - "symfony/dependency-injection": "2.1.*" + "phpunit/phpunit": "~4.8" }, "suggest": { - "symfony/dependency-injection": "2.1.*", - "symfony/http-kernel": "2.1.*" + "ext-curl": "Allows access to Webdis when paired with phpiredis", + "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol" }, "type": "library", "autoload": { - "psr-0": { - "Symfony\\Component\\EventDispatcher": "" + "psr-4": { + "Predis\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -850,48 +927,47 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Daniele Alessandri", + "email": "suppakilla@gmail.com", + "homepage": "http://clorophilla.net" } ], - "description": "Symfony EventDispatcher Component", - "homepage": "http://symfony.com", - "time": "2013-02-11 11:26:14" + "description": "Flexible and feature-complete Redis client for PHP and HHVM", + "homepage": "http://github.com/nrk/predis", + "keywords": [ + "nosql", + "predis", + "redis" + ], + "time": "2016-06-16T16:22:20+00:00" }, { - "name": "symfony/filesystem", - "version": "v3.0.4", + "name": "psr/cache", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "f82499a459dcade2ea56df94cc58b19c8bde3d20" + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/f82499a459dcade2ea56df94cc58b19c8bde3d20", - "reference": "f82499a459dcade2ea56df94cc58b19c8bde3d20", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Psr\\Cache\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -899,48 +975,45 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2016-03-27 10:24:39" + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "time": "2016-08-06T20:24:11+00:00" }, { - "name": "symfony/finder", - "version": "v2.8.4", + "name": "psr/container", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "ca24cf2cd4e3826f571e0067e535758e73807aa1" + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ca24cf2cd4e3826f571e0067e535758e73807aa1", - "reference": "ca24cf2cd4e3826f571e0067e535758e73807aa1", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Psr\\Container\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -948,73 +1021,48 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Symfony Finder Component", - "homepage": "https://symfony.com", - "time": "2016-03-10 10:53:53" + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" }, { - "name": "symfony/form", - "version": "v2.8.4", + "name": "psr/log", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/symfony/form.git", - "reference": "7ef08bd80804329a38bb647f2cafba8128ef3fed" + "url": "https://github.com/php-fig/log.git", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/7ef08bd80804329a38bb647f2cafba8128ef3fed", - "reference": "7ef08bd80804329a38bb647f2cafba8128ef3fed", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/event-dispatcher": "~2.1|~3.0.0", - "symfony/intl": "~2.4|~3.0.0", - "symfony/options-resolver": "~2.6", - "symfony/polyfill-mbstring": "~1.0", - "symfony/property-access": "~2.3|~3.0.0" - }, - "conflict": { - "symfony/doctrine-bridge": "<2.7", - "symfony/framework-bundle": "<2.7", - "symfony/twig-bridge": "<2.7" - }, - "require-dev": { - "doctrine/collections": "~1.0", - "symfony/dependency-injection": "~2.3|~3.0.0", - "symfony/http-foundation": "~2.2|~3.0.0", - "symfony/http-kernel": "~2.4|~3.0.0", - "symfony/security-csrf": "~2.4|~3.0.0", - "symfony/translation": "~2.0,>=2.0.5|~3.0.0", - "symfony/validator": "~2.8|~3.0.0" - }, - "suggest": { - "symfony/framework-bundle": "For templating with PHP.", - "symfony/security-csrf": "For protecting forms against CSRF attacks.", - "symfony/twig-bridge": "For templating with Twig.", - "symfony/validator": "For form validation." + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Form\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Psr\\Log\\": "Psr/Log/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1022,41 +1070,73 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Symfony Form Component", - "homepage": "https://symfony.com", - "time": "2016-03-27 10:21:58" + "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": "symfony/http-foundation", - "version": "v2.1.13", - "target-dir": "Symfony/Component/HttpFoundation", + "name": "sensio/framework-extra-bundle", + "version": "v5.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "79fd1ab0b85e782d342e83799b39b729fd1a30ee" + "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", + "reference": "5f75c4658b03301cba17baa15a840b57b72b4262" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/79fd1ab0b85e782d342e83799b39b729fd1a30ee", - "reference": "79fd1ab0b85e782d342e83799b39b729fd1a30ee", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/5f75c4658b03301cba17baa15a840b57b72b4262", + "reference": "5f75c4658b03301cba17baa15a840b57b72b4262", "shasum": "" }, "require": { - "php": ">=5.3.3" + "doctrine/annotations": "^1.0", + "doctrine/persistence": "^1.0", + "php": ">=7.1.3", + "symfony/config": "^3.4|^4.2", + "symfony/dependency-injection": "^3.4|^4.2", + "symfony/framework-bundle": "^3.4|^4.2", + "symfony/http-kernel": "^3.4|^4.2" + }, + "require-dev": { + "doctrine/doctrine-bundle": "^1.6", + "doctrine/orm": "^2.5", + "nyholm/psr7": "^1.1", + "symfony/browser-kit": "^3.4|^4.2", + "symfony/dom-crawler": "^3.4|^4.2", + "symfony/expression-language": "^3.4|^4.2", + "symfony/finder": "^3.4|^4.2", + "symfony/monolog-bridge": "^3.0|^4.0", + "symfony/monolog-bundle": "^3.2", + "symfony/phpunit-bridge": "^3.4.19|^4.1.8", + "symfony/psr-http-message-bridge": "^1.1", + "symfony/security-bundle": "^3.4|^4.2", + "symfony/twig-bundle": "^3.4|^4.2", + "symfony/yaml": "^3.4|^4.2", + "twig/twig": "~1.12|~2.0" + }, + "suggest": { + "symfony/expression-language": "", + "symfony/psr-http-message-bridge": "To use the PSR-7 converters", + "symfony/security-bundle": "" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "5.3.x-dev" + } }, - "type": "library", "autoload": { - "psr-0": { - "Symfony\\Component\\HttpFoundation": "", - "SessionHandlerInterface": "Symfony/Component/HttpFoundation/Resources/stubs" + "psr-4": { + "Sensio\\Bundle\\FrameworkExtraBundle\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1064,61 +1144,59 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" } ], - "description": "Symfony HttpFoundation Component", - "homepage": "http://symfony.com", - "time": "2013-08-07 13:58:42" + "description": "This bundle provides a way to configure your controllers with annotations", + "keywords": [ + "annotations", + "controllers" + ], + "time": "2019-04-10T06:00:20+00:00" }, { - "name": "symfony/http-kernel", - "version": "v2.1.13", - "target-dir": "Symfony/Component/HttpKernel", + "name": "snc/redis-bundle", + "version": "2.1.9", "source": { "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "b0fbc4d28fa9676a741f127c891eff73a36a338c" + "url": "https://github.com/snc/SncRedisBundle.git", + "reference": "af3ac967b0351ff880f646486bff87247abb5286" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b0fbc4d28fa9676a741f127c891eff73a36a338c", - "reference": "b0fbc4d28fa9676a741f127c891eff73a36a338c", + "url": "https://api.github.com/repos/snc/SncRedisBundle/zipball/af3ac967b0351ff880f646486bff87247abb5286", + "reference": "af3ac967b0351ff880f646486bff87247abb5286", "shasum": "" }, "require": { "php": ">=5.3.3", - "symfony/event-dispatcher": "2.1.*", - "symfony/http-foundation": "2.1.*" + "symfony/framework-bundle": "^2.7 || ^3.0 || ^4.0", + "symfony/yaml": "^2.7 || ^3.0 || ^4.0" }, "require-dev": { - "symfony/browser-kit": "2.1.*", - "symfony/class-loader": "2.1.*", - "symfony/config": "2.1.*", - "symfony/console": "2.1.*", - "symfony/dependency-injection": "2.1.*", - "symfony/finder": "2.1.*", - "symfony/process": "2.1.*", - "symfony/routing": "2.1.*" + "doctrine/cache": "1.*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5", + "predis/predis": "^1.0", + "symfony/console": "^2.7 || ^3.0 || ^4.0", + "symfony/phpunit-bridge": "^2.7 || ^3.0 || ^4.0" }, "suggest": { - "symfony/browser-kit": "2.1.*", - "symfony/class-loader": "2.1.*", - "symfony/config": "2.1.*", - "symfony/console": "2.1.*", - "symfony/dependency-injection": "2.1.*", - "symfony/finder": "2.1.*" + "monolog/monolog": "If you want to use the monolog redis handler.", + "predis/predis": "If you want to use predis.", + "symfony/console": "If you want to use commands to interact with the redis database", + "symfony/proxy-manager-bridge": "If you want to lazy-load some services" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } }, - "type": "library", "autoload": { - "psr-0": { - "Symfony\\Component\\HttpKernel": "" + "psr-4": { + "Snc\\RedisBundle\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1127,55 +1205,57 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Henrik Westphal", + "email": "henrik.westphal@gmail.com" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Community contributors", + "homepage": "https://github.com/snc/SncRedisBundle/contributors" } ], - "description": "Symfony HttpKernel Component", - "homepage": "http://symfony.com", - "time": "2013-10-10 11:03:57" + "description": "A Redis bundle for Symfony", + "homepage": "https://github.com/snc/SncRedisBundle", + "keywords": [ + "nosql", + "redis", + "symfony" + ], + "time": "2019-02-20T07:03:43+00:00" }, { - "name": "symfony/intl", - "version": "v3.0.4", + "name": "symfony/asset", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/intl.git", - "reference": "020a5dcd764e426013dacc2814e7ce4ac09ac2b3" + "url": "https://github.com/symfony/asset.git", + "reference": "eecf6d6c952c2c80c9b4fa3ec089d222420f1569" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/020a5dcd764e426013dacc2814e7ce4ac09ac2b3", - "reference": "020a5dcd764e426013dacc2814e7ce4ac09ac2b3", + "url": "https://api.github.com/repos/symfony/asset/zipball/eecf6d6c952c2c80c9b4fa3ec089d222420f1569", + "reference": "eecf6d6c952c2c80c9b4fa3ec089d222420f1569", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-intl-icu": "~1.0" + "php": "^7.1.3" }, "require-dev": { - "symfony/filesystem": "~2.8|~3.0" + "symfony/http-foundation": "~3.4|~4.0", + "symfony/http-kernel": "~3.4|~4.0" }, "suggest": { - "ext-intl": "to use the component with locales other than \"en\"" + "symfony/http-foundation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Intl\\": "" + "Symfony\\Component\\Asset\\": "" }, - "classmap": [ - "Resources/stubs" - ], "exclude-from-classmap": [ "/Tests/" ] @@ -1186,108 +1266,127 @@ ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - }, - { - "name": "Eriksen Costa", - "email": "eriksen.costa@infranology.com.br" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "A PHP replacement layer for the C intl extension that includes additional data from the ICU library.", + "description": "Symfony Asset Component", "homepage": "https://symfony.com", - "keywords": [ - "i18n", - "icu", - "internationalization", - "intl", - "l10n", - "localization" - ], - "time": "2016-03-23 13:23:25" + "time": "2019-05-30T16:10:05+00:00" }, { - "name": "symfony/monolog-bridge", - "version": "v2.1.13", - "target-dir": "Symfony/Bridge/Monolog", + "name": "symfony/cache", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "cdf03eef2f4e36ddea868b5b12fc9467425b5b38" + "url": "https://github.com/symfony/cache.git", + "reference": "2edc417da273bafee589a8758f0278416d04af38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/cdf03eef2f4e36ddea868b5b12fc9467425b5b38", - "reference": "cdf03eef2f4e36ddea868b5b12fc9467425b5b38", + "url": "https://api.github.com/repos/symfony/cache/zipball/2edc417da273bafee589a8758f0278416d04af38", + "reference": "2edc417da273bafee589a8758f0278416d04af38", "shasum": "" }, "require": { - "monolog/monolog": ">=1.0,<1.3-dev", - "php": ">=5.3.3", - "symfony/http-kernel": "2.1.*" + "php": "^7.1.3", + "psr/cache": "~1.0", + "psr/log": "~1.0", + "symfony/cache-contracts": "^1.1", + "symfony/service-contracts": "^1.1", + "symfony/var-exporter": "^4.2" }, - "type": "symfony-bridge", - "autoload": { - "psr-0": { - "Symfony\\Bridge\\Monolog": "" + "conflict": { + "doctrine/dbal": "<2.5", + "symfony/dependency-injection": "<3.4", + "symfony/var-dumper": "<3.4" + }, + "provide": { + "psr/cache-implementation": "1.0", + "psr/simple-cache-implementation": "1.0", + "symfony/cache-implementation": "1.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "~1.6", + "doctrine/dbal": "~2.5", + "predis/predis": "~1.1", + "psr/simple-cache": "^1.0", + "symfony/config": "~4.2", + "symfony/dependency-injection": "~3.4|~4.1", + "symfony/var-dumper": "^4.1.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" } }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Monolog Bridge", - "homepage": "http://symfony.com", - "time": "2013-01-09 08:51:07" + "description": "Symfony Cache component with PSR-6, PSR-16, and tags", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "time": "2019-06-06T10:05:02+00:00" }, { - "name": "symfony/options-resolver", - "version": "v2.8.4", + "name": "symfony/cache-contracts", + "version": "v1.1.5", "source": { "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "496d650b0137e57c2920eb14f9d366ff506761a8" + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "ec5524b669744b5f1dc9c66d3c2b091eb7e7f0db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/496d650b0137e57c2920eb14f9d366ff506761a8", - "reference": "496d650b0137e57c2920eb14f9d366ff506761a8", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ec5524b669744b5f1dc9c66d3c2b091eb7e7f0db", + "reference": "ec5524b669744b5f1dc9c66d3c2b091eb7e7f0db", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": "^7.1.3", + "psr/cache": "^1.0" + }, + "suggest": { + "symfony/cache-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "1.1-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Symfony\\Contracts\\Cache\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1295,49 +1394,70 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony OptionsResolver Component", + "description": "Generic abstractions related to caching", "homepage": "https://symfony.com", "keywords": [ - "config", - "configuration", - "options" - ], - "time": "2016-03-04 07:54:35" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-06-13T11:15:36+00:00" }, { - "name": "symfony/polyfill-apcu", - "version": "v1.1.1", + "name": "symfony/config", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-apcu.git", - "reference": "0c901e4e65a2f7ece68f0fd249b56d6ad3adc214" + "url": "https://github.com/symfony/config.git", + "reference": "6379ee07398643e09e6ed1e87d9c62dfcad7f4eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/0c901e4e65a2f7ece68f0fd249b56d6ad3adc214", - "reference": "0c901e4e65a2f7ece68f0fd249b56d6ad3adc214", + "url": "https://api.github.com/repos/symfony/config/zipball/6379ee07398643e09e6ed1e87d9c62dfcad7f4eb", + "reference": "6379ee07398643e09e6ed1e87d9c62dfcad7f4eb", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1.3", + "symfony/filesystem": "~3.4|~4.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/messenger": "~4.1", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "4.3-dev" } }, "autoload": { - "files": [ - "bootstrap.php" + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1346,55 +1466,73 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions", + "description": "Symfony Config Component", "homepage": "https://symfony.com", - "keywords": [ - "apcu", - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2016-03-03 16:49:40" + "time": "2019-05-30T16:10:05+00:00" }, { - "name": "symfony/polyfill-intl-icu", - "version": "v1.1.1", + "name": "symfony/console", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "8328069d9f5322f0e7b3c3518485acfdc94c3942" + "url": "https://github.com/symfony/console.git", + "reference": "d50bbeeb0e17e6dd4124ea391eff235e932cbf64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/8328069d9f5322f0e7b3c3518485acfdc94c3942", - "reference": "8328069d9f5322f0e7b3c3518485acfdc94c3942", + "url": "https://api.github.com/repos/symfony/console/zipball/d50bbeeb0e17e6dd4124ea391eff235e932cbf64", + "reference": "d50bbeeb0e17e6dd4124ea391eff235e932cbf64", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/intl": "~2.3|~3.0" + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3", + "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": "^4.3", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", + "symfony/var-dumper": "^4.3" }, "suggest": { - "ext-intl": "For best performance" + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "4.3-dev" } }, "autoload": { - "files": [ - "bootstrap.php" + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1403,45 +1541,48 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's ICU-related data and classes", + "description": "Symfony Console Component", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "icu", - "intl", - "polyfill", - "portable", - "shim" - ], - "time": "2016-02-26 16:18:12" + "time": "2019-06-05T13:25:51+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.1.1", + "name": "symfony/contracts", + "version": "v1.1.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "1289d16209491b584839022f29257ad859b8532d" + "url": "https://github.com/symfony/contracts.git", + "reference": "d3636025e8253c6144358ec0a62773cae588395b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/1289d16209491b584839022f29257ad859b8532d", - "reference": "1289d16209491b584839022f29257ad859b8532d", + "url": "https://api.github.com/repos/symfony/contracts/zipball/d3636025e8253c6144358ec0a62773cae588395b", + "reference": "d3636025e8253c6144358ec0a62773cae588395b", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1.3" + }, + "require-dev": { + "psr/cache": "^1.0", + "psr/container": "^1.0", + "symfony/polyfill-intl-idn": "^1.10" }, "suggest": { - "ext-mbstring": "For best performance" + "psr/cache": "When using the Cache contracts", + "psr/container": "When using the Service contracts", + "symfony/cache-contracts-implementation": "", + "symfony/event-dispatcher-implementation": "", + "symfony/http-client-contracts-implementation": "", + "symfony/service-contracts-implementation": "", + "symfony/translation-contracts-implementation": "" }, "type": "library", "extra": { @@ -1451,10 +1592,10 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" + "Symfony\\Contracts\\": "" }, - "files": [ - "bootstrap.php" + "exclude-from-classmap": [ + "**/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1471,43 +1612,51 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "A set of abstractions extracted out of the Symfony components", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2016-01-20 09:13:37" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-04-27T14:29:50+00:00" }, { - "name": "symfony/process", - "version": "v2.8.4", + "name": "symfony/debug", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "fb467471952ef5cf8497c029980e556b47545333" + "url": "https://github.com/symfony/debug.git", + "reference": "4e025104f1f9adb1f7a2d14fb102c9986d6e97c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/fb467471952ef5cf8497c029980e556b47545333", - "reference": "fb467471952ef5cf8497c029980e556b47545333", + "url": "https://api.github.com/repos/symfony/debug/zipball/4e025104f1f9adb1f7a2d14fb102c9986d6e97c6", + "reference": "4e025104f1f9adb1f7a2d14fb102c9986d6e97c6", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": "^7.1.3", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "~3.4|~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Process\\": "" + "Symfony\\Component\\Debug\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -1527,36 +1676,53 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2016-03-23 13:11:46" + "time": "2019-05-30T16:10:05+00:00" }, { - "name": "symfony/property-access", - "version": "v3.0.4", + "name": "symfony/debug-bundle", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/property-access.git", - "reference": "475e661a0b90f0e6942a7d2fdf4e0dbf8104fef3" + "url": "https://github.com/symfony/debug-bundle.git", + "reference": "9b80d1c97c11950f3e49c12fef3c8ccc8a42e601" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/475e661a0b90f0e6942a7d2fdf4e0dbf8104fef3", - "reference": "475e661a0b90f0e6942a7d2fdf4e0dbf8104fef3", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/9b80d1c97c11950f3e49c12fef3c8ccc8a42e601", + "reference": "9b80d1c97c11950f3e49c12fef3c8ccc8a42e601", "shasum": "" }, "require": { - "php": ">=5.5.9" + "ext-xml": "*", + "php": "^7.1.3", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/twig-bridge": "~3.4|~4.0", + "symfony/var-dumper": "^4.1.1" }, - "type": "library", + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4" + }, + "require-dev": { + "symfony/config": "~4.2", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/web-profiler-bundle": "~3.4|~4.0" + }, + "suggest": { + "symfony/config": "For service container configuration", + "symfony/dependency-injection": "For using as a service from the container" + }, + "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\PropertyAccess\\": "" + "Symfony\\Bundle\\DebugBundle\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -1576,60 +1742,90 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony PropertyAccess Component", + "description": "Symfony DebugBundle", "homepage": "https://symfony.com", - "keywords": [ - "access", - "array", - "extraction", - "index", - "injection", - "object", - "property", - "property path", - "reflection" + "time": "2019-04-11T12:10:52+00:00" + }, + { + "name": "symfony/debug-pack", + "version": "v1.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug-pack.git", + "reference": "09a4a1e9bf2465987d4f79db0ad6c11cc632bc79" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug-pack/zipball/09a4a1e9bf2465987d4f79db0ad6c11cc632bc79", + "reference": "09a4a1e9bf2465987d4f79db0ad6c11cc632bc79", + "shasum": "" + }, + "require": { + "easycorp/easy-log-handler": "^1.0.7", + "php": "^7.0", + "symfony/debug-bundle": "*", + "symfony/monolog-bundle": "^3.0", + "symfony/profiler-pack": "*", + "symfony/var-dumper": "*" + }, + "type": "symfony-pack", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" ], - "time": "2016-03-23 13:23:25" + "description": "A debug pack for Symfony projects", + "time": "2018-12-10T12:11:11+00:00" }, { - "name": "symfony/routing", - "version": "v2.3.39", - "target-dir": "Symfony/Component/Routing", + "name": "symfony/dependency-injection", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "9f464f27cb127232f5c32d5a736fe769e5249442" + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "fea7f73e278ee0337349a5a68b867fc656bb33f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/9f464f27cb127232f5c32d5a736fe769e5249442", - "reference": "9f464f27cb127232f5c32d5a736fe769e5249442", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/fea7f73e278ee0337349a5a68b867fc656bb33f3", + "reference": "fea7f73e278ee0337349a5a68b867fc656bb33f3", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1.3", + "psr/container": "^1.0", + "symfony/service-contracts": "^1.1.2" + }, + "conflict": { + "symfony/config": "<4.3", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0" }, "require-dev": { - "doctrine/common": "~2.2", - "psr/log": "~1.0", - "symfony/config": "~2.2", - "symfony/http-foundation": "~2.3", - "symfony/yaml": "~2.0,>=2.0.5" + "symfony/config": "^4.3", + "symfony/expression-language": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { - "doctrine/common": "", "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "4.3-dev" } }, "autoload": { - "psr-0": { - "Symfony\\Component\\Routing\\": "" + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -1649,119 +1845,114 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Routing Component", + "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2016-03-04 07:12:06" + "time": "2019-05-30T16:10:05+00:00" }, { - "name": "symfony/security", - "version": "v2.3.23", - "target-dir": "Symfony/Component/Security", + "name": "symfony/dotenv", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/security.git", - "reference": "c3100eb623f97650fa4cdede3e832a497b8e473c" + "url": "https://github.com/symfony/dotenv.git", + "reference": "efd677abff68ea6fcfd9c60dbdacb96d0d97b382" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security/zipball/c3100eb623f97650fa4cdede3e832a497b8e473c", - "reference": "c3100eb623f97650fa4cdede3e832a497b8e473c", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/efd677abff68ea6fcfd9c60dbdacb96d0d97b382", + "reference": "efd677abff68ea6fcfd9c60dbdacb96d0d97b382", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/event-dispatcher": "~2.1", - "symfony/http-foundation": "~2.1", - "symfony/http-kernel": "~2.1" + "php": "^7.1.3" }, "require-dev": { - "doctrine/common": "~2.2", - "doctrine/dbal": "~2.2", - "ircmaxell/password-compat": "~1.0", - "psr/log": "~1.0", - "symfony/form": "~2.0", - "symfony/routing": "~2.2", - "symfony/validator": "~2.2" - }, - "suggest": { - "doctrine/dbal": "to use the built-in ACL implementation", - "ircmaxell/password-compat": "", - "symfony/class-loader": "", - "symfony/finder": "", - "symfony/form": "", - "symfony/routing": "", - "symfony/validator": "" + "symfony/process": "~3.4|~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "4.3-dev" } }, "autoload": { - "psr-0": { - "Symfony\\Component\\Security\\": "" - } + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Security Component", - "homepage": "http://symfony.com", - "time": "2014-12-02 19:42:47" + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "time": "2019-05-07T09:02:05+00:00" }, { - "name": "symfony/translation", - "version": "v2.8.4", + "name": "symfony/event-dispatcher", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "d60b8e076d22953aabebeebda53bf334438e7aca" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "4e6c670af81c4fb0b6c08b035530a9915d0b691f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/d60b8e076d22953aabebeebda53bf334438e7aca", - "reference": "d60b8e076d22953aabebeebda53bf334438e7aca", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4e6c670af81c4fb0b6c08b035530a9915d0b691f", + "reference": "4e6c670af81c4fb0b6c08b035530a9915d0b691f", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/polyfill-mbstring": "~1.0" + "php": "^7.1.3", + "symfony/event-dispatcher-contracts": "^1.1" }, "conflict": { - "symfony/config": "<2.7" + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.8", - "symfony/intl": "~2.4|~3.0.0", - "symfony/yaml": "~2.2|~3.0.0" + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/http-foundation": "^3.4|^4.0", + "symfony/service-contracts": "^1.1", + "symfony/stopwatch": "~3.4|~4.0" }, "suggest": { - "psr/log": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" + "symfony/dependency-injection": "", + "symfony/http-kernel": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Translation\\": "" + "Symfony\\Component\\EventDispatcher\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -1781,72 +1972,41 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Translation Component", + "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2016-03-25 01:40:30" + "time": "2019-05-30T16:10:05+00:00" }, { - "name": "symfony/twig-bridge", - "version": "v2.8.4", + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.1", "source": { "type": "git", - "url": "https://github.com/symfony/twig-bridge.git", - "reference": "11326178aea4aceb99f72c8ff0cac32d668309c7" + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "8fa2cf2177083dd59cf8e44ea4b6541764fbda69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/11326178aea4aceb99f72c8ff0cac32d668309c7", - "reference": "11326178aea4aceb99f72c8ff0cac32d668309c7", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8fa2cf2177083dd59cf8e44ea4b6541764fbda69", + "reference": "8fa2cf2177083dd59cf8e44ea4b6541764fbda69", "shasum": "" }, "require": { - "php": ">=5.3.9", - "twig/twig": "~1.23|~2.0" - }, - "require-dev": { - "symfony/asset": "~2.7|~3.0.0", - "symfony/console": "~2.8|~3.0.0", - "symfony/expression-language": "~2.4|~3.0.0", - "symfony/finder": "~2.3|~3.0.0", - "symfony/form": "~2.8.4", - "symfony/http-kernel": "~2.8|~3.0.0", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/routing": "~2.2|~3.0.0", - "symfony/security": "~2.6|~3.0.0", - "symfony/security-acl": "~2.6|~3.0.0", - "symfony/stopwatch": "~2.2|~3.0.0", - "symfony/templating": "~2.1|~3.0.0", - "symfony/translation": "~2.7|~3.0.0", - "symfony/var-dumper": "~2.6|~3.0.0", - "symfony/yaml": "~2.0,>=2.0.5|~3.0.0" + "php": "^7.1.3" }, "suggest": { - "symfony/asset": "For using the AssetExtension", - "symfony/expression-language": "For using the ExpressionExtension", - "symfony/finder": "", - "symfony/form": "For using the FormExtension", - "symfony/http-kernel": "For using the HttpKernelExtension", - "symfony/routing": "For using the RoutingExtension", - "symfony/security": "For using the SecurityExtension", - "symfony/stopwatch": "For using the StopwatchExtension", - "symfony/templating": "For using the TwigEngine", - "symfony/translation": "For using the TranslationExtension", - "symfony/var-dumper": "For using the DumpExtension", - "symfony/yaml": "For using the YamlExtension" + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" }, - "type": "symfony-bridge", + "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "1.1-dev" } }, "autoload": { "psr-4": { - "Symfony\\Bridge\\Twig\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Symfony\\Contracts\\EventDispatcher\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1854,67 +2014,53 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Twig Bridge", + "description": "Generic abstractions related to dispatching event", "homepage": "https://symfony.com", - "time": "2016-03-25 18:30:27" + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-05-22T12:23:29+00:00" }, { - "name": "symfony/validator", - "version": "v2.8.4", + "name": "symfony/filesystem", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/validator.git", - "reference": "ea0ce99531c9eb82abf21011da4e111932f8ce81" + "url": "https://github.com/symfony/filesystem.git", + "reference": "bf2af40d738dec5e433faea7b00daa4431d0a4cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/ea0ce99531c9eb82abf21011da4e111932f8ce81", - "reference": "ea0ce99531c9eb82abf21011da4e111932f8ce81", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/bf2af40d738dec5e433faea7b00daa4431d0a4cf", + "reference": "bf2af40d738dec5e433faea7b00daa4431d0a4cf", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/translation": "~2.4|~3.0.0" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "doctrine/cache": "~1.0", - "egulias/email-validator": "~1.2,>=1.2.1", - "symfony/config": "~2.2|~3.0.0", - "symfony/expression-language": "~2.4|~3.0.0", - "symfony/http-foundation": "~2.1|~3.0.0", - "symfony/intl": "~2.7.4|~2.8|~3.0.0", - "symfony/property-access": "~2.3|~3.0.0", - "symfony/yaml": "~2.0,>=2.0.5|~3.0.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader and metadata cache.", - "egulias/email-validator": "Strict (RFC compliant) email validation", - "symfony/config": "", - "symfony/expression-language": "For using the 2.4 Expression validator", - "symfony/http-foundation": "", - "symfony/intl": "", - "symfony/property-access": "For using the 2.4 Validator API", - "symfony/yaml": "" + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Validator\\": "" + "Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -1934,36 +2080,36 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Validator Component", + "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2016-03-27 12:57:53" + "time": "2019-06-03T20:27:40+00:00" }, { - "name": "symfony/yaml", - "version": "v2.8.4", + "name": "symfony/finder", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "584e52cb8f788a887553ba82db6caacb1d6260bb" + "url": "https://github.com/symfony/finder.git", + "reference": "b3d4f4c0e4eadfdd8b296af9ca637cfbf51d8176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/584e52cb8f788a887553ba82db6caacb1d6260bb", - "reference": "584e52cb8f788a887553ba82db6caacb1d6260bb", + "url": "https://api.github.com/repos/symfony/finder/zipball/b3d4f4c0e4eadfdd8b296af9ca637cfbf51d8176", + "reference": "b3d4f4c0e4eadfdd8b296af9ca637cfbf51d8176", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": "^7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Yaml\\": "" + "Symfony\\Component\\Finder\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -1983,112 +2129,162 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", + "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2016-03-04 07:54:35" + "time": "2019-05-26T20:47:49+00:00" }, { - "name": "twig/twig", - "version": "v1.24.0", + "name": "symfony/flex", + "version": "v1.2.7", "source": { "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "3e5aa30ebfbafd5951fb1b01e338e1800ce7e0e8" + "url": "https://github.com/symfony/flex.git", + "reference": "8618b243d44bac71e4006062f245d807d84f7a6c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/3e5aa30ebfbafd5951fb1b01e338e1800ce7e0e8", - "reference": "3e5aa30ebfbafd5951fb1b01e338e1800ce7e0e8", + "url": "https://api.github.com/repos/symfony/flex/zipball/8618b243d44bac71e4006062f245d807d84f7a6c", + "reference": "8618b243d44bac71e4006062f245d807d84f7a6c", "shasum": "" }, "require": { - "php": ">=5.2.7" + "composer-plugin-api": "^1.0", + "php": "^7.0" }, "require-dev": { - "symfony/debug": "~2.7", - "symfony/phpunit-bridge": "~2.7" + "composer/composer": "^1.0.2", + "symfony/dotenv": "^3.4|^4.0", + "symfony/phpunit-bridge": "^3.4.19|^4.1.8", + "symfony/process": "^2.7|^3.0|^4.0" }, - "type": "library", + "type": "composer-plugin", "extra": { "branch-alias": { - "dev-master": "1.24-dev" - } + "dev-master": "1.2-dev" + }, + "class": "Symfony\\Flex\\Flex" }, "autoload": { - "psr-0": { - "Twig_": "lib/" + "psr-4": { + "Symfony\\Flex\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - }, - { - "name": "Twig Team", - "homepage": "http://twig.sensiolabs.org/contributors", - "role": "Contributors" + "email": "fabien.potencier@gmail.com" } ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "http://twig.sensiolabs.org", - "keywords": [ - "templating" - ], - "time": "2016-01-25 21:22:18" - } - ], - "packages-dev": [ + "description": "Composer plugin for Symfony", + "time": "2019-06-15T07:15:42+00:00" + }, { - "name": "deployer/deployer", - "version": "4.x-dev", + "name": "symfony/framework-bundle", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/deployphp/deployer.git", - "reference": "aa0a10992c8fc2e2b34ab6adff734f1f598c0ba7" + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "fe407e6840d2b8f34c3fb67111e05c6d65319ef6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/deployphp/deployer/zipball/aa0a10992c8fc2e2b34ab6adff734f1f598c0ba7", - "reference": "aa0a10992c8fc2e2b34ab6adff734f1f598c0ba7", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/fe407e6840d2b8f34c3fb67111e05c6d65319ef6", + "reference": "fe407e6840d2b8f34c3fb67111e05c6d65319ef6", "shasum": "" }, "require": { - "deployer/phar-update": "^1.0", - "elfet/pure": "~2.0", - "php": ">=5.5.0", - "phpseclib/phpseclib": "~2.0", - "symfony/console": "~2.6|~3.0", - "symfony/finder": "~2.6|~3.0", - "symfony/process": "~2.6|~3.0", - "symfony/yaml": "~2.6|~3.0" + "ext-xml": "*", + "php": "^7.1.3", + "symfony/cache": "~4.3", + "symfony/config": "~4.2", + "symfony/dependency-injection": "^4.3", + "symfony/filesystem": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/http-foundation": "^4.3", + "symfony/http-kernel": "^4.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/routing": "^4.3" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.0", + "phpdocumentor/type-resolver": "<0.2.1", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.4", + "symfony/browser-kit": "<4.3", + "symfony/console": "<4.3", + "symfony/dom-crawler": "<4.3", + "symfony/dotenv": "<4.2", + "symfony/form": "<4.3", + "symfony/messenger": "<4.3", + "symfony/property-info": "<3.4", + "symfony/serializer": "<4.2", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<4.3", + "symfony/twig-bridge": "<4.1.1", + "symfony/validator": "<4.1", + "symfony/workflow": "<4.3" }, "require-dev": { - "phpunit/phpunit": "~4.5" + "doctrine/annotations": "~1.0", + "doctrine/cache": "~1.0", + "fig/link-util": "^1.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "symfony/asset": "~3.4|~4.0", + "symfony/browser-kit": "^4.3", + "symfony/console": "^4.3", + "symfony/css-selector": "~3.4|~4.0", + "symfony/dom-crawler": "^4.3", + "symfony/expression-language": "~3.4|~4.0", + "symfony/form": "^4.3", + "symfony/http-client": "^4.3", + "symfony/lock": "~3.4|~4.0", + "symfony/mailer": "^4.3", + "symfony/messenger": "^4.3", + "symfony/mime": "^4.3", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "~3.4|~4.0", + "symfony/property-info": "~3.4|~4.0", + "symfony/security-csrf": "~3.4|~4.0", + "symfony/security-http": "~3.4|~4.0", + "symfony/serializer": "^4.3", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~3.4|~4.0", + "symfony/translation": "~4.2", + "symfony/twig-bundle": "~2.8|~3.2|~4.0", + "symfony/validator": "^4.1", + "symfony/var-dumper": "^4.3", + "symfony/web-link": "~3.4|~4.0", + "symfony/workflow": "^4.3", + "symfony/yaml": "~3.4|~4.0", + "twig/twig": "~1.34|~2.4" }, "suggest": { - "ext-sockets": "For parallel deployment", - "herzult/php-ssh": "For SSH support through native SSH2 extension" + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } }, - "bin": [ - "bin/dep" - ], - "type": "library", "autoload": { "psr-4": { - "Deployer\\": "src/" - } + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2096,43 +2292,54 @@ ], "authors": [ { - "name": "Anton Medvedev", - "email": "anton@medv.io" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Deployment Tool", - "homepage": "http://deployer.org", - "time": "2016-05-18 06:50:02" + "description": "Symfony FrameworkBundle", + "homepage": "https://symfony.com", + "time": "2019-06-06T08:35:06+00:00" }, { - "name": "deployer/phar-update", - "version": "v1.0.0", + "name": "symfony/http-foundation", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/deployphp/phar-update.git", - "reference": "df2670056d9922b6f02e055ce9846508656b02aa" + "url": "https://github.com/symfony/http-foundation.git", + "reference": "b7e4945dd9b277cd24e93566e4da0a87956392a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/deployphp/phar-update/zipball/df2670056d9922b6f02e055ce9846508656b02aa", - "reference": "df2670056d9922b6f02e055ce9846508656b02aa", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b7e4945dd9b277cd24e93566e4da0a87956392a9", + "reference": "b7e4945dd9b277cd24e93566e4da0a87956392a9", "shasum": "" }, "require": { - "herrera-io/phar-update": "~2.0", - "php": ">=5.3.3", - "symfony/console": "^2.1|^3.0" + "php": "^7.1.3", + "symfony/mime": "^4.3", + "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { - "herrera-io/box": "~1.0", - "herrera-io/phpunit-test-case": "1.*", - "phpunit/phpunit": "3.7.*" + "predis/predis": "~1.0", + "symfony/expression-language": "~3.4|~4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, "autoload": { "psr-4": { - "Deployer\\Component\\PharUpdate\\": "src/" - } + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2140,59 +2347,91 @@ ], "authors": [ { - "name": "Kevin Herrera", - "email": "kevin@herrera.io", - "homepage": "http://kevin.herrera.io" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Anton Medvedev", - "email": "anton@medv.io", - "homepage": "http://medv.io" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Integrates Phar Update to Symfony Console.", - "homepage": "https://github.com/deployphp/phar-update", - "keywords": [ - "console", - "phar", - "update" - ], - "time": "2016-04-06 13:32:59" + "description": "Symfony HttpFoundation Component", + "homepage": "https://symfony.com", + "time": "2019-06-06T10:05:02+00:00" }, { - "name": "doctrine/instantiator", - "version": "1.0.5", + "name": "symfony/http-kernel", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + "url": "https://github.com/symfony/http-kernel.git", + "reference": "738ad561cd6a8d1c44ee1da941b2e628e264c429" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/738ad561cd6a8d1c44ee1da941b2e628e264c429", + "reference": "738ad561cd6a8d1c44ee1da941b2e628e264c429", "shasum": "" }, "require": { - "php": ">=5.3,<8.0-DEV" + "php": "^7.1.3", + "psr/log": "~1.0", + "symfony/debug": "~3.4|~4.0", + "symfony/event-dispatcher": "^4.3", + "symfony/http-foundation": "^4.1.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php73": "^1.9" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "symfony/var-dumper": "<4.1.1", + "twig/twig": "<1.34|<2.4,>=2" + }, + "provide": { + "psr/log-implementation": "1.0" }, "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" + "psr/cache": "~1.0", + "symfony/browser-kit": "^4.3", + "symfony/config": "~3.4|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/css-selector": "~3.4|~4.0", + "symfony/dependency-injection": "^4.3", + "symfony/dom-crawler": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", + "symfony/routing": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~3.4|~4.0", + "symfony/translation": "~4.2", + "symfony/translation-contracts": "^1.1", + "symfony/var-dumper": "^4.1.1", + "twig/twig": "^1.34|^2.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "", + "symfony/var-dumper": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2200,52 +2439,54 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "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-14 21:17:01" + "description": "Symfony HttpKernel Component", + "homepage": "https://symfony.com", + "time": "2019-06-06T13:23:34+00:00" }, { - "name": "elfet/pure", - "version": "v2.0.0", + "name": "symfony/mime", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/elfet/purephp.git", - "reference": "9d6422d31b89c4f79c322df2a7772936a8bc74a1" + "url": "https://github.com/symfony/mime.git", + "reference": "ec2c5565de60e03f33d4296a655e3273f0ad1f8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/elfet/purephp/zipball/9d6422d31b89c4f79c322df2a7772936a8bc74a1", - "reference": "9d6422d31b89c4f79c322df2a7772936a8bc74a1", + "url": "https://api.github.com/repos/symfony/mime/zipball/ec2c5565de60e03f33d4296a655e3273f0ad1f8b", + "reference": "ec2c5565de60e03f33d4296a655e3273f0ad1f8b", "shasum": "" }, "require": { - "react/react": "~0.4", - "symfony/console": "~2.6|~3.0", - "symfony/debug": "~2.6|~3.0", - "symfony/expression-language": "~2.6|~3.0" + "php": "^7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" }, "require-dev": { - "phpunit/phpunit": "~4.4", - "symfony/finder": "~2.6|~3.0", - "symfony/process": "~2.6|~3.0" + "egulias/email-validator": "^2.0", + "symfony/dependency-injection": "~3.4|^4.1" }, - "bin": [ - "pure" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, "autoload": { "psr-4": { - "Pure\\": "src/" - } + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2253,40 +2494,69 @@ ], "authors": [ { - "name": "Anton Medvedev", - "email": "anton@medv.io" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Pure PHP key-value storage", - "time": "2016-03-19 14:26:03" + "description": "A library to manipulate MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "time": "2019-06-04T09:22:54+00:00" }, { - "name": "evenement/evenement", - "version": "v2.0.0", + "name": "symfony/monolog-bridge", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/igorw/evenement.git", - "reference": "f6e843799fd4f4184d54d8fc7b5b3551c9fa803e" + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "64179561f09cf196090fd5d86888a5f99d86d30a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/igorw/evenement/zipball/f6e843799fd4f4184d54d8fc7b5b3551c9fa803e", - "reference": "f6e843799fd4f4184d54d8fc7b5b3551c9fa803e", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/64179561f09cf196090fd5d86888a5f99d86d30a", + "reference": "64179561f09cf196090fd5d86888a5f99d86d30a", "shasum": "" }, "require": { - "php": ">=5.4.0" + "monolog/monolog": "~1.19", + "php": "^7.1.3", + "symfony/http-kernel": "^4.3", + "symfony/service-contracts": "^1.1" }, - "type": "library", + "conflict": { + "symfony/console": "<3.4", + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0", + "symfony/security-core": "~3.4|~4.0", + "symfony/var-dumper": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "4.3-dev" } }, "autoload": { - "psr-0": { - "Evenement": "src" - } + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2294,54 +2564,57 @@ ], "authors": [ { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch", - "homepage": "http://wiedler.ch/igor/" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Événement is a very simple event dispatching library for PHP", - "keywords": [ - "event-dispatcher", - "event-emitter" - ], - "time": "2012-11-02 14:49:47" + "description": "Symfony Monolog Bridge", + "homepage": "https://symfony.com", + "time": "2019-05-30T16:10:05+00:00" }, { - "name": "guzzlehttp/psr7", - "version": "1.3.0", + "name": "symfony/monolog-bundle", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "31382fef2889136415751badebbd1cb022a4ed72" + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/31382fef2889136415751badebbd1cb022a4ed72", - "reference": "31382fef2889136415751badebbd1cb022a4ed72", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/7fbecb371c1c614642c93c6b2cbcdf723ae8809d", + "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" + "monolog/monolog": "~1.22", + "php": ">=5.6", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4.10|^4.0.10", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/monolog-bridge": "~3.4|~4.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "symfony/console": "~3.4|~4.0", + "symfony/phpunit-bridge": "^3.4.19|^4.0", + "symfony/yaml": "~3.4|~4.0" }, - "type": "library", + "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "3.x-dev" } }, "autoload": { "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" + "Symfony\\Bundle\\MonologBundle\\": "" }, - "files": [ - "src/functions_include.php" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2350,58 +2623,57 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], - "description": "PSR-7 message implementation", + "description": "Symfony MonologBundle", + "homepage": "http://symfony.com", "keywords": [ - "http", - "message", - "stream", - "uri" + "log", + "logging" ], - "time": "2016-04-13 19:56:01" + "time": "2019-06-20T12:18:19+00:00" }, { - "name": "herrera-io/json", - "version": "1.0.3", + "name": "symfony/polyfill-intl-idn", + "version": "v1.11.0", "source": { "type": "git", - "url": "https://github.com/kherge-abandoned/php-json.git", - "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1" + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "c766e95bec706cdd89903b1eda8afab7d7a6b7af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kherge-abandoned/php-json/zipball/60c696c9370a1e5136816ca557c17f82a6fa83f1", - "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c766e95bec706cdd89903b1eda8afab7d7a6b7af", + "reference": "c766e95bec706cdd89903b1eda8afab7d7a6b7af", "shasum": "" }, "require": { - "ext-json": "*", - "justinrainbow/json-schema": ">=1.0,<2.0-dev", "php": ">=5.3.3", - "seld/jsonlint": ">=1.0,<2.0-dev" + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.9" }, - "require-dev": { - "herrera-io/phpunit-test-case": "1.*", - "mikey179/vfsstream": "1.1.0", - "phpunit/phpunit": "3.7.*" + "suggest": { + "ext-intl": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.9-dev" } }, "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + }, "files": [ - "src/lib/json_version.php" - ], - "psr-0": { - "Herrera\\Json": "src/lib" - } + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2409,58 +2681,59 @@ ], "authors": [ { - "name": "Kevin Herrera", - "email": "kevin@herrera.io", - "homepage": "http://kevin.herrera.io" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" } ], - "description": "A library for simplifying JSON linting and validation.", - "homepage": "http://herrera-io.github.com/php-json", + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", "keywords": [ - "json", - "lint", - "schema", - "validate" + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" ], - "time": "2013-10-30 16:51:34" + "time": "2019-03-04T13:44:35+00:00" }, { - "name": "herrera-io/phar-update", - "version": "2.0.0", + "name": "symfony/polyfill-mbstring", + "version": "v1.11.0", "source": { "type": "git", - "url": "https://github.com/kherge-abandoned/php-phar-update.git", - "reference": "15643c90d3d43620a4f45c910e6afb7a0ad4b488" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "fe5e94c604826c35a32fa832f35bd036b6799609" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kherge-abandoned/php-phar-update/zipball/15643c90d3d43620a4f45c910e6afb7a0ad4b488", - "reference": "15643c90d3d43620a4f45c910e6afb7a0ad4b488", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609", + "reference": "fe5e94c604826c35a32fa832f35bd036b6799609", "shasum": "" }, "require": { - "herrera-io/json": "1.*", - "herrera-io/version": "1.*", "php": ">=5.3.3" }, - "require-dev": { - "herrera-io/phpunit-test-case": "1.*", - "mikey179/vfsstream": "1.1.0", - "phpunit/phpunit": "3.7.*" + "suggest": { + "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.11-dev" } }, "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, "files": [ - "src/lib/constants.php" - ], - "psr-0": { - "Herrera\\Phar\\Update": "src/lib" - } + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2468,50 +2741,55 @@ ], "authors": [ { - "name": "Kevin Herrera", - "email": "kevin@herrera.io", - "homepage": "http://kevin.herrera.io" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A library for self-updating Phars.", - "homepage": "http://herrera-io.github.com/php-phar-update", + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", "keywords": [ - "phar", - "update" + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" ], - "time": "2013-11-09 17:13:13" + "time": "2019-02-06T07:57:58+00:00" }, { - "name": "herrera-io/version", - "version": "1.1.1", + "name": "symfony/polyfill-php72", + "version": "v1.11.0", "source": { "type": "git", - "url": "https://github.com/kherge-abandoned/php-version.git", - "reference": "d39d9642b92a04d8b8a28b871b797a35a2545e85" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kherge-abandoned/php-version/zipball/d39d9642b92a04d8b8a28b871b797a35a2545e85", - "reference": "d39d9642b92a04d8b8a28b871b797a35a2545e85", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/ab50dcf166d5f577978419edd37aa2bb8eabce0c", + "reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c", "shasum": "" }, "require": { "php": ">=5.3.3" }, - "require-dev": { - "herrera-io/phpunit-test-case": "1.*", - "phpunit/phpunit": "3.7.*" - }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.11-dev" } }, "autoload": { - "psr-0": { - "Herrera\\Version": "src/lib" - } + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2519,159 +2797,161 @@ ], "authors": [ { - "name": "Kevin Herrera", - "email": "kevin@herrera.io", - "homepage": "http://kevin.herrera.io" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A library for creating, editing, and comparing semantic versioning numbers.", - "homepage": "http://github.com/herrera-io/php-version", + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", "keywords": [ - "semantic", - "version" + "compatibility", + "polyfill", + "portable", + "shim" ], - "time": "2014-05-27 05:29:25" + "time": "2019-02-06T07:57:58+00:00" }, { - "name": "justinrainbow/json-schema", - "version": "1.6.1", + "name": "symfony/polyfill-php73", + "version": "v1.11.0", "source": { "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "cc84765fb7317f6b07bd8ac78364747f95b86341" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "d1fb4abcc0c47be136208ad9d68bf59f1ee17abd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/cc84765fb7317f6b07bd8ac78364747f95b86341", - "reference": "cc84765fb7317f6b07bd8ac78364747f95b86341", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/d1fb4abcc0c47be136208ad9d68bf59f1ee17abd", + "reference": "d1fb4abcc0c47be136208ad9d68bf59f1ee17abd", "shasum": "" }, "require": { - "php": ">=5.3.29" - }, - "require-dev": { - "json-schema/json-schema-test-suite": "1.1.0", - "phpdocumentor/phpdocumentor": "~2", - "phpunit/phpunit": "~3.7" + "php": ">=5.3.3" }, - "bin": [ - "bin/validate-json" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "1.11-dev" } }, "autoload": { "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", "keywords": [ - "json", - "schema" + "compatibility", + "polyfill", + "portable", + "shim" ], - "time": "2016-01-25 15:43:01" + "time": "2019-02-06T07:57:58+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.5.1", + "name": "symfony/profiler-pack", + "version": "v1.0.4", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "a8773992b362b58498eed24bf85005f363c34771" + "url": "https://github.com/symfony/profiler-pack.git", + "reference": "99c4370632c2a59bb0444852f92140074ef02209" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/a8773992b362b58498eed24bf85005f363c34771", - "reference": "a8773992b362b58498eed24bf85005f363c34771", + "url": "https://api.github.com/repos/symfony/profiler-pack/zipball/99c4370632c2a59bb0444852f92140074ef02209", + "reference": "99c4370632c2a59bb0444852f92140074ef02209", "shasum": "" }, "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "doctrine/collections": "1.*", - "phpunit/phpunit": "~4.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } + "php": "^7.0", + "symfony/stopwatch": "*", + "symfony/twig-bundle": "*", + "symfony/web-profiler-bundle": "*" }, + "type": "symfony-pack", "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Create deep copies (clones) of your objects", - "homepage": "https://github.com/myclabs/DeepCopy", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "time": "2015-11-20 12:04:31" + "description": "A pack for the Symfony web profiler", + "time": "2018-12-10T12:11:44+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "1.0", + "name": "symfony/routing", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c" + "url": "https://github.com/symfony/routing.git", + "reference": "9b31cd24f6ad2cebde6845f6daa9c6d69efe2465" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c", - "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c", + "url": "https://api.github.com/repos/symfony/routing/zipball/9b31cd24f6ad2cebde6845f6daa9c6d69efe2465", + "reference": "9b31cd24f6ad2cebde6845f6daa9c6d69efe2465", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^7.1.3" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" }, "require-dev": { - "phpunit/phpunit": "^4.6" + "doctrine/annotations": "~1.2", + "psr/log": "~1.0", + "symfony/config": "~4.2", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/http-foundation": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2679,51 +2959,54 @@ ], "authors": [ { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", + "description": "Symfony Routing Component", + "homepage": "https://symfony.com", "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" + "router", + "routing", + "uri", + "url" ], - "time": "2015-12-27 11:43:31" + "time": "2019-06-05T09:16:20+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "3.1.0", + "name": "symfony/service-contracts", + "version": "v1.1.5", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "9270140b940ff02e58ec577c237274e92cd40cdd" + "url": "https://github.com/symfony/service-contracts.git", + "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9270140b940ff02e58ec577c237274e92cd40cdd", - "reference": "9270140b940ff02e58ec577c237274e92cd40cdd", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d", + "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d", "shasum": "" }, "require": { - "php": ">=5.5", - "phpdocumentor/reflection-common": "^1.0@dev", - "phpdocumentor/type-resolver": "^0.2.0", - "webmozart/assert": "^1.0" + "php": "^7.1.3", + "psr/container": "^1.0" }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" + "suggest": { + "symfony/service-implementation": "" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "Symfony\\Contracts\\Service\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2732,47 +3015,57 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2016-06-10 09:48:41" + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-06-13T11:15:36+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "0.2", + "name": "symfony/stopwatch", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443" + "url": "https://github.com/symfony/stopwatch.git", + "reference": "6b100e9309e8979cf1978ac1778eb155c1f7d93b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b39c7a5b194f9ed7bd0dd345c751007a41862443", - "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/6b100e9309e8979cf1978ac1778eb155c1f7d93b", + "reference": "6b100e9309e8979cf1978ac1778eb155c1f7d93b", "shasum": "" }, "require": { - "php": ">=5.5", - "phpdocumentor/reflection-common": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "php": "^7.1.3", + "symfony/service-contracts": "^1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2780,49 +3073,97 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "time": "2016-06-10 07:14:17" + "description": "Symfony Stopwatch Component", + "homepage": "https://symfony.com", + "time": "2019-05-27T08:16:38+00:00" }, { - "name": "phpseclib/phpseclib", - "version": "2.0.2", + "name": "symfony/twig-bridge", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "3d265f7c079f5b37d33475f996d7a383c5fc8aeb" + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "52aa76480b775be0f6465b90ca9e3c2dccc8f3cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/3d265f7c079f5b37d33475f996d7a383c5fc8aeb", - "reference": "3d265f7c079f5b37d33475f996d7a383c5fc8aeb", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/52aa76480b775be0f6465b90ca9e3c2dccc8f3cd", + "reference": "52aa76480b775be0f6465b90ca9e3c2dccc8f3cd", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1.3", + "twig/twig": "^1.41|^2.10" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/form": "<4.3", + "symfony/http-foundation": "<4.3", + "symfony/translation": "<4.2", + "symfony/workflow": "<4.3" }, "require-dev": { - "phing/phing": "~2.7", - "phpunit/phpunit": "~4.0", - "sami/sami": "~2.0", - "squizlabs/php_codesniffer": "~2.0" + "egulias/email-validator": "^2.0", + "symfony/asset": "~3.4|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/form": "^4.3", + "symfony/http-foundation": "~4.3", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/mime": "~4.3", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/routing": "~3.4|~4.0", + "symfony/security-acl": "~2.8|~3.0", + "symfony/security-csrf": "~3.4|~4.0", + "symfony/security-http": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~3.4|~4.0", + "symfony/translation": "^4.2.1", + "symfony/var-dumper": "~3.4|~4.0", + "symfony/web-link": "~3.4|~4.0", + "symfony/workflow": "~4.3", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { - "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", - "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", - "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", - "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + "symfony/asset": "For using the AssetExtension", + "symfony/expression-language": "For using the ExpressionExtension", + "symfony/finder": "", + "symfony/form": "For using the FormExtension", + "symfony/http-kernel": "For using the HttpKernelExtension", + "symfony/routing": "For using the RoutingExtension", + "symfony/security-core": "For using the SecurityExtension", + "symfony/security-csrf": "For using the CsrfExtension", + "symfony/security-http": "For using the LogoutUrlExtension", + "symfony/stopwatch": "For using the StopwatchExtension", + "symfony/templating": "For using the TwigEngine", + "symfony/translation": "For using the TranslationExtension", + "symfony/var-dumper": "For using the DumpExtension", + "symfony/web-link": "For using the WebLinkExtension", + "symfony/yaml": "For using the YamlExtension" + }, + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } }, - "type": "library", "autoload": { - "files": [ - "phpseclib/bootstrap.php" - ], "psr-4": { - "phpseclib\\": "phpseclib/" - } + "Symfony\\Bridge\\Twig\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2830,88 +3171,75 @@ ], "authors": [ { - "name": "Jim Wigginton", - "email": "terrafrost@php.net", - "role": "Lead Developer" - }, - { - "name": "Patrick Monnerat", - "email": "pm@datasphere.ch", - "role": "Developer" - }, - { - "name": "Andreas Fischer", - "email": "bantu@phpbb.com", - "role": "Developer" - }, - { - "name": "Hans-Jürgen Petrich", - "email": "petrich@tronic-media.com", - "role": "Developer" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Graham Campbell", - "email": "graham@alt-three.com", - "role": "Developer" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", - "homepage": "http://phpseclib.sourceforge.net", - "keywords": [ - "BigInteger", - "aes", - "asn.1", - "asn1", - "blowfish", - "crypto", - "cryptography", - "encryption", - "rsa", - "security", - "sftp", - "signature", - "signing", - "ssh", - "twofish", - "x.509", - "x509" - ], - "time": "2016-05-13 01:15:21" + "description": "Symfony Twig Bridge", + "homepage": "https://symfony.com", + "time": "2019-06-01T07:11:44+00:00" }, { - "name": "phpspec/prophecy", - "version": "v1.6.1", + "name": "symfony/twig-bundle", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "58a8137754bc24b25740d4281399a4a3596058e0" + "url": "https://github.com/symfony/twig-bundle.git", + "reference": "b8e1c193a474b97b608de74fe0a01214678bfd89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0", - "reference": "58a8137754bc24b25740d4281399a4a3596058e0", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/b8e1c193a474b97b608de74fe0a01214678bfd89", + "reference": "b8e1c193a474b97b608de74fe0a01214678bfd89", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", - "sebastian/comparator": "^1.1", - "sebastian/recursion-context": "^1.0" + "php": "^7.1.3", + "symfony/config": "~4.2", + "symfony/http-foundation": "~4.3", + "symfony/http-kernel": "~4.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/twig-bridge": "^4.3", + "twig/twig": "~1.41|~2.10" }, - "require-dev": { - "phpspec/phpspec": "^2.0" + "conflict": { + "symfony/dependency-injection": "<4.1", + "symfony/framework-bundle": "<4.3", + "symfony/translation": "<4.2" }, - "type": "library", + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/cache": "~1.0", + "symfony/asset": "~3.4|~4.0", + "symfony/dependency-injection": "^4.2.5", + "symfony/expression-language": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/form": "~3.4|~4.0", + "symfony/framework-bundle": "~4.3", + "symfony/routing": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~3.4|~4.0", + "symfony/translation": "^4.2", + "symfony/web-link": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "4.3-dev" } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } + "psr-4": { + "Symfony\\Bundle\\TwigBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2919,328 +3247,372 @@ ], "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" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "time": "2016-06-07 08:13:47" + "description": "Symfony TwigBundle", + "homepage": "https://symfony.com", + "time": "2019-05-30T16:10:05+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "4.0.0", + "name": "symfony/var-dumper", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "900370c81280cc0d942ffbc5912d80464eaee7e9" + "url": "https://github.com/symfony/var-dumper.git", + "reference": "f974f448154928d2b5fb7c412bd23b81d063f34b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/900370c81280cc0d942ffbc5912d80464eaee7e9", - "reference": "900370c81280cc0d942ffbc5912d80464eaee7e9", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/f974f448154928d2b5fb7c412bd23b81d063f34b", + "reference": "f974f448154928d2b5fb7c412bd23b81d063f34b", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "phpunit/php-file-iterator": "~1.3", - "phpunit/php-text-template": "~1.2", - "phpunit/php-token-stream": "^1.4.2", - "sebastian/code-unit-reverse-lookup": "~1.0", - "sebastian/environment": "^1.3.2", - "sebastian/version": "~1.0|~2.0" + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" }, "require-dev": { - "ext-xdebug": ">=2.1.4", - "phpunit/phpunit": "^5.4" + "ext-iconv": "*", + "symfony/console": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", + "twig/twig": "~1.34|~2.4" }, "suggest": { - "ext-dom": "*", - "ext-xdebug": ">=2.4.0", - "ext-xmlwriter": "*" + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" }, + "bin": [ + "Resources/bin/var-dump-server" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "4.3-dev" } }, "autoload": { - "classmap": [ - "src/" + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", "keywords": [ - "coverage", - "testing", - "xunit" + "debug", + "dump" ], - "time": "2016-06-03 05:03:56" + "time": "2019-06-05T02:08:12+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "1.4.1", + "name": "symfony/var-exporter", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0" + "url": "https://github.com/symfony/var-exporter.git", + "reference": "2b7c857d553423b2317ac0741fb2581d9bfd8fb7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/2b7c857d553423b2317ac0741fb2581d9bfd8fb7", + "reference": "2b7c857d553423b2317ac0741fb2581d9bfd8fb7", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1.3" + }, + "require-dev": { + "symfony/var-dumper": "^4.1.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "4.3-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", + "homepage": "https://symfony.com", "keywords": [ - "filesystem", - "iterator" + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" ], - "time": "2015-06-21 13:08:43" + "time": "2019-04-10T19:42:49+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "symfony/web-profiler-bundle", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/symfony/web-profiler-bundle.git", + "reference": "ca3a3c8558bc641df7c8c2c546381ccd78d0777a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/ca3a3c8558bc641df7c8c2c546381ccd78d0777a", + "reference": "ca3a3c8558bc641df7c8c2c546381ccd78d0777a", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1.3", + "symfony/config": "^4.2", + "symfony/http-kernel": "^4.3", + "symfony/routing": "~3.4|~4.0", + "symfony/twig-bundle": "~4.2", + "symfony/var-dumper": "~3.4|~4.0", + "twig/twig": "^1.41|^2.10" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/form": "<4.3", + "symfony/messenger": "<4.2", + "symfony/var-dumper": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } }, - "type": "library", "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Bundle\\WebProfilerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21 13:50:34" + "description": "Symfony WebProfilerBundle", + "homepage": "https://symfony.com", + "time": "2019-05-30T16:10:05+00:00" }, { - "name": "phpunit/php-timer", - "version": "1.0.8", + "name": "symfony/webpack-encore-bundle", + "version": "v1.6.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" + "url": "https://github.com/symfony/webpack-encore-bundle.git", + "reference": "f1ec2fea7fb6a7c7a444ac17e711fab3bbf5e015" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", + "url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/f1ec2fea7fb6a7c7a444ac17e711fab3bbf5e015", + "reference": "f1ec2fea7fb6a7c7a444ac17e711fab3bbf5e015", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1.3", + "symfony/asset": "^3.4 || ^4.0", + "symfony/config": "^3.4 || ^4.0", + "symfony/contracts": "^1.0", + "symfony/dependency-injection": "^3.4 || ^4.0", + "symfony/http-kernel": "^3.4 || ^4.0" }, "require-dev": { - "phpunit/phpunit": "~4|~5" + "fig/link-util": "^1.0", + "friendsofphp/php-cs-fixer": "^2.14", + "symfony/framework-bundle": "^3.4 || ^4.0", + "symfony/phpunit-bridge": "^3.4 || ^4.1", + "symfony/twig-bundle": "^3.4 || ^4.0", + "symfony/web-link": "^3.4 || ^4.0", + "twig/twig": "^1.35 || ^2.0" + }, + "type": "symfony-bundle", + "extra": { + "thanks": { + "name": "symfony/webpack-encore", + "url": "https://github.com/symfony/webpack-encore" + } }, - "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Symfony\\WebpackEncoreBundle\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2016-05-12 18:03:57" + "description": "Integration with your Symfony app & Webpack Encore!", + "time": "2019-05-26T18:09:46+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "1.4.8", + "name": "symfony/yaml", + "version": "v4.3.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" + "url": "https://github.com/symfony/yaml.git", + "reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", + "url": "https://api.github.com/repos/symfony/yaml/zipball/c60ecf5ba842324433b46f58dc7afc4487dbab99", + "reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "4.3-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2015-09-15 10:49:45" + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2019-04-06T14:04:46+00:00" }, { - "name": "phpunit/phpunit", - "version": "5.4.7", + "name": "twig/twig", + "version": "v2.11.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "6c8a756c17a1a92a066c99860eb57922e8b723da" + "url": "https://github.com/twigphp/Twig.git", + "reference": "699ed2342557c88789a15402de5eb834dedd6792" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6c8a756c17a1a92a066c99860eb57922e8b723da", - "reference": "6c8a756c17a1a92a066c99860eb57922e8b723da", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/699ed2342557c88789a15402de5eb834dedd6792", + "reference": "699ed2342557c88789a15402de5eb834dedd6792", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "myclabs/deep-copy": "~1.3", - "php": "^5.6 || ^7.0", - "phpspec/prophecy": "^1.3.1", - "phpunit/php-code-coverage": "^4.0", - "phpunit/php-file-iterator": "~1.4", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "^3.2", - "sebastian/comparator": "~1.1", - "sebastian/diff": "~1.2", - "sebastian/environment": "^1.3 || ^2.0", - "sebastian/exporter": "~1.2", - "sebastian/global-state": "~1.0", - "sebastian/object-enumerator": "~1.0", - "sebastian/resource-operations": "~1.0", - "sebastian/version": "~1.0|~2.0", - "symfony/yaml": "~2.1|~3.0" + "php": "^7.0", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" }, - "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2" - }, - "suggest": { - "phpunit/php-invoker": "~1.1" + "require-dev": { + "psr/container": "^1.0", + "symfony/debug": "^2.7", + "symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "5.4.x-dev" + "dev-master": "2.11-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-0": { + "Twig_": "lib/" + }, + "psr-4": { + "Twig\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3248,661 +3620,806 @@ ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + }, + { + "name": "Twig Team", + "homepage": "https://twig.symfony.com/contributors", + "role": "Contributors" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", "keywords": [ - "phpunit", - "testing", - "xunit" + "templating" ], - "time": "2016-07-21 06:55:27" - }, + "time": "2019-06-18T15:37:11+00:00" + } + ], + "packages-dev": [ { - "name": "phpunit/phpunit-mock-objects", - "version": "3.2.3", + "name": "doctrine/instantiator", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "b13d0d9426ced06958bd32104653526a6c998a52" + "url": "https://github.com/doctrine/instantiator.git", + "reference": "a2c590166b2133a4633738648b6b064edae0814a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/b13d0d9426ced06958bd32104653526a6c998a52", - "reference": "b13d0d9426ced06958bd32104653526a6c998a52", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", + "reference": "a2c590166b2133a4633738648b6b064edae0814a", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.6 || ^7.0", - "phpunit/php-text-template": "^1.2", - "sebastian/exporter": "^1.2" - }, - "conflict": { - "phpunit/phpunit": "<5.4.0" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^5.4" - }, - "suggest": { - "ext-soap": "*" + "doctrine/coding-standard": "^6.0", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" } ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ - "mock", - "xunit" + "constructor", + "instantiate" ], - "time": "2016-06-12 07:37:26" + "time": "2019-03-17T17:37:11+00:00" }, { - "name": "psr/http-message", - "version": "1.0", + "name": "myclabs/deep-copy", + "version": "1.9.1", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", - "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", + "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.1" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "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": { - "Psr\\Http\\Message\\": "src/" - } + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", + "description": "Create deep copies (clones) of your objects", "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" + "clone", + "copy", + "duplicate", + "object", + "object graph" ], - "time": "2015-05-04 20:22:00" + "time": "2019-04-07T13:18:21+00:00" }, { - "name": "psr/log", - "version": "1.0.0", + "name": "phar-io/manifest", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" + "url": "https://github.com/phar-io/manifest.git", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", + "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", - "autoload": { - "psr-0": { - "Psr\\Log\\": "" + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "Common interface for logging libraries", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2012-12-21 11:40:51" + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2018-07-08T19:23:20+00:00" }, { - "name": "react/cache", - "version": "v0.4.1", + "name": "phar-io/version", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/reactphp/cache.git", - "reference": "558f614891341b1d817a8cdf9a358948ec49638f" + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/cache/zipball/558f614891341b1d817a8cdf9a358948ec49638f", - "reference": "558f614891341b1d817a8cdf9a358948ec49638f", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", "shasum": "" }, "require": { - "php": ">=5.3.0", - "react/promise": "~2.0|~1.1" + "php": "^5.6 || ^7.0" }, "type": "library", "autoload": { - "psr-4": { - "React\\Cache\\": "src\\" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], - "description": "Async caching.", - "keywords": [ - "cache" + "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" + } ], - "time": "2016-02-25 18:17:16" + "description": "Library for handling version information and constraints", + "time": "2018-07-08T19:19:57+00:00" }, { - "name": "react/child-process", - "version": "v0.4.0", + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/reactphp/child-process.git", - "reference": "8bf211533bcbb2034e00528a47400367570dc3d7" + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/child-process/zipball/8bf211533bcbb2034e00528a47400367570dc3d7", - "reference": "8bf211533bcbb2034e00528a47400367570dc3d7", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", "shasum": "" }, "require": { - "evenement/evenement": "~2.0", - "php": ">=5.4.0", - "react/event-loop": "0.4.*", - "react/stream": "0.4.*" + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.4-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "React\\ChildProcess\\": "" + "phpDocumentor\\Reflection\\": [ + "src" + ] } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Library for executing child processes.", + "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": [ - "process" + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" ], - "time": "2014-02-02 01:11:26" + "time": "2017-09-11T18:02:19+00:00" }, { - "name": "react/dns", - "version": "v0.4.2", + "name": "phpdocumentor/reflection-docblock", + "version": "4.3.1", "source": { "type": "git", - "url": "https://github.com/reactphp/dns.git", - "reference": "62f6201e487df8add209cc42f05ffca33ee1ba05" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/dns/zipball/62f6201e487df8add209cc42f05ffca33ee1ba05", - "reference": "62f6201e487df8add209cc42f05ffca33ee1ba05", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", "shasum": "" }, "require": { - "php": ">=5.3.0", - "react/cache": "~0.4.0|~0.3.0", - "react/promise": "~2.0|~1.1", - "react/socket": "~0.4.0|~0.3.0" + "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": "0.4-dev" + "dev-master": "4.x-dev" } }, "autoload": { "psr-4": { - "React\\Dns\\": "src" + "phpDocumentor\\Reflection\\": [ + "src/" + ] } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Async DNS resolver.", - "keywords": [ - "dns", - "dns-resolver" + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } ], - "time": "2016-02-24 23:45:36" + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2019-04-30T17:48:53+00:00" }, { - "name": "react/event-loop", - "version": "v0.4.2", + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", "source": { "type": "git", - "url": "https://github.com/reactphp/event-loop.git", - "reference": "164799f73175e1c80bba92a220ea35df6ca371dd" + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/event-loop/zipball/164799f73175e1c80bba92a220ea35df6ca371dd", - "reference": "164799f73175e1c80bba92a220ea35df6ca371dd", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", "shasum": "" }, "require": { - "php": ">=5.4.0" + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" }, - "suggest": { - "ext-event": "~1.0", - "ext-libev": "*", - "ext-libevent": ">=0.1.0" + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.5-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "React\\EventLoop\\": "src" + "phpDocumentor\\Reflection\\": [ + "src/" + ] } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Event loop abstraction layer that libraries can use for evented I/O.", - "keywords": [ - "asynchronous", - "event-loop" + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } ], - "time": "2016-03-08 02:09:32" + "time": "2017-07-14T14:27:02+00:00" }, { - "name": "react/http", - "version": "v0.4.1", + "name": "phpspec/prophecy", + "version": "1.8.1", "source": { "type": "git", - "url": "https://github.com/reactphp/http.git", - "reference": "f575989d67b7db0a65f5dd7e431d8f47af6c2f7b" + "url": "https://github.com/phpspec/prophecy.git", + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/http/zipball/f575989d67b7db0a65f5dd7e431d8f47af6c2f7b", - "reference": "f575989d67b7db0a65f5dd7e431d8f47af6c2f7b", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76", + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76", "shasum": "" }, "require": { - "evenement/evenement": "^2.0", - "guzzlehttp/psr7": "^1.0", - "php": ">=5.4.0", - "react/socket": "^0.4", - "react/stream": "^0.4" + "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": "0.5-dev" + "dev-master": "1.8.x-dev" } }, "autoload": { "psr-4": { - "React\\Http\\": "src" + "Prophecy\\": "src/Prophecy" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Library for building an evented http server.", + "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": [ - "http" + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" ], - "time": "2015-05-21 20:12:09" + "time": "2019-06-13T12:50:23+00:00" }, { - "name": "react/http-client", - "version": "v0.4.10", + "name": "phpunit/php-code-coverage", + "version": "7.0.5", "source": { "type": "git", - "url": "https://github.com/reactphp/http-client.git", - "reference": "1a37937274cc7bf7ef194381c83f5a4ad5253575" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "aed67b57d459dcab93e84a5c9703d3deb5025dff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/http-client/zipball/1a37937274cc7bf7ef194381c83f5a4ad5253575", - "reference": "1a37937274cc7bf7ef194381c83f5a4ad5253575", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aed67b57d459dcab93e84a5c9703d3deb5025dff", + "reference": "aed67b57d459dcab93e84a5c9703d3deb5025dff", "shasum": "" }, "require": { - "evenement/evenement": "~2.0", - "guzzlehttp/psr7": "^1.0", - "php": ">=5.4.0", - "react/dns": "0.4.*", - "react/event-loop": "0.4.*", - "react/promise": "~2.2", - "react/socket-client": "^0.5 || ^0.4 || ^0.3", - "react/stream": "0.4.*" + "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": "0.5-dev" + "dev-master": "7.0-dev" } }, "autoload": { - "psr-4": { - "React\\HttpClient\\": "src" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } ], - "description": "Asynchronous HTTP client library.", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", "keywords": [ - "http" + "coverage", + "testing", + "xunit" ], - "time": "2016-03-21 14:01:16" + "time": "2019-06-06T12:28:18+00:00" }, { - "name": "react/promise", - "version": "v2.4.1", + "name": "phpunit/php-file-iterator", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/reactphp/promise.git", - "reference": "8025426794f1944de806618671d4fa476dc7626f" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "050bedf145a257b1ff02746c31894800e5122946" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/8025426794f1944de806618671d4fa476dc7626f", - "reference": "8025426794f1944de806618671d4fa476dc7626f", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", + "reference": "050bedf145a257b1ff02746c31894800e5122946", "shasum": "" }, "require": { - "php": ">=5.4.0" + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "React\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "A lightweight implementation of CommonJS Promises/A for PHP", - "time": "2016-05-03 17:50:52" + "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": "react/react", - "version": "v0.4.2", + "name": "phpunit/php-text-template", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/reactphp/react.git", - "reference": "457b6b8a16a37c11278cac0870d6d2ff911c5765" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/react/zipball/457b6b8a16a37c11278cac0870d6d2ff911c5765", - "reference": "457b6b8a16a37c11278cac0870d6d2ff911c5765", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", "shasum": "" }, "require": { - "php": ">=5.4.0", - "react/cache": "0.4.*", - "react/child-process": "0.4.*", - "react/dns": "0.4.*", - "react/event-loop": "0.4.*", - "react/http": "0.4.*", - "react/http-client": "0.4.*", - "react/promise": "~2.1", - "react/socket": "0.4.*", - "react/socket-client": "0.4.*", - "react/stream": "0.4.*" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "suggest": { - "ext-event": "Allows for use of a more performant event-loop implementation.", - "ext-libev": "Allows for use of a more performant event-loop implementation.", - "ext-libevent": "Allows for use of a more performant event-loop implementation." + "php": ">=5.3.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.5-dev" - } + "autoload": { + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } ], - "description": "Nuclear Reactor written in PHP.", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "asynchronous", - "event-loop", - "reactor" + "template" ], - "time": "2014-12-11 02:06:55" + "time": "2015-06-21T13:50:34+00:00" }, { - "name": "react/socket", - "version": "v0.4.3", + "name": "phpunit/php-timer", + "version": "2.1.2", "source": { "type": "git", - "url": "https://github.com/reactphp/socket.git", - "reference": "ce015ec5879b96f5d30905f035f223aa85013fcc" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/socket/zipball/ce015ec5879b96f5d30905f035f223aa85013fcc", - "reference": "ce015ec5879b96f5d30905f035f223aa85013fcc", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", "shasum": "" }, "require": { - "evenement/evenement": "~2.0|~1.0", - "php": ">=5.3.0", - "react/event-loop": "0.4.*|0.3.*", - "react/stream": "0.4.*|0.3.*" + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.4-dev" + "dev-master": "2.1-dev" } }, "autoload": { - "psr-4": { - "React\\Socket\\": "src" + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" ], - "description": "Library for building an evented socket server.", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "Socket" + "timer" ], - "time": "2016-03-01 20:10:35" + "time": "2019-06-07T04:22:29+00:00" }, { - "name": "react/socket-client", - "version": "v0.4.5", + "name": "phpunit/php-token-stream", + "version": "3.0.1", "source": { "type": "git", - "url": "https://github.com/reactphp/socket-client.git", - "reference": "a25539f2cd30b4be56e35de9f96f6aa744246cc2" + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/socket-client/zipball/a25539f2cd30b4be56e35de9f96f6aa744246cc2", - "reference": "a25539f2cd30b4be56e35de9f96f6aa744246cc2", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18", + "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18", "shasum": "" }, "require": { - "php": ">=5.4.0", - "react/dns": "0.4.*", - "react/event-loop": "0.4.*", - "react/promise": "~2.0", - "react/stream": "0.4.*" + "ext-tokenizer": "*", + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { - "psr-4": { - "React\\SocketClient\\": "src" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } ], - "description": "Async connector to open TCP/IP and SSL/TLS based connections.", + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", "keywords": [ - "Socket" + "tokenizer" ], - "time": "2016-03-27 18:31:39" + "time": "2018-10-30T05:52:18+00:00" }, { - "name": "react/stream", - "version": "v0.4.3", + "name": "phpunit/phpunit", + "version": "8.2.3", "source": { "type": "git", - "url": "https://github.com/reactphp/stream.git", - "reference": "305b2328d2a2e157bc13b61a0f5c6e41b666b188" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "f67ca36860ebca7224d4573f107f79bd8ed0ba03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/stream/zipball/305b2328d2a2e157bc13b61a0f5c6e41b666b188", - "reference": "305b2328d2a2e157bc13b61a0f5c6e41b666b188", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f67ca36860ebca7224d4573f107f79bd8ed0ba03", + "reference": "f67ca36860ebca7224d4573f107f79bd8ed0ba03", "shasum": "" }, "require": { - "evenement/evenement": "^2.0|^1.0", - "php": ">=5.3.8" + "doctrine/instantiator": "^1.2.0", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.9.1", + "phar-io/manifest": "^1.0.3", + "phar-io/version": "^2.0.1", + "php": "^7.2", + "phpspec/prophecy": "^1.8.1", + "phpunit/php-code-coverage": "^7.0.5", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1.2", + "sebastian/comparator": "^3.0.2", + "sebastian/diff": "^3.0.2", + "sebastian/environment": "^4.2.2", + "sebastian/exporter": "^3.1.0", + "sebastian/global-state": "^3.0.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0.1", + "sebastian/type": "^1.1.0", + "sebastian/version": "^2.0.1" }, "require-dev": { - "react/event-loop": "^0.4|^0.3", - "react/promise": "^2.0|^1.0" + "ext-pdo": "*" }, "suggest": { - "react/event-loop": "^0.4", - "react/promise": "^2.0" + "ext-soap": "*", + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0.0" }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "0.5-dev" + "dev-master": "8.2-dev" } }, "autoload": { - "psr-4": { - "React\\Stream\\": "src" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } ], - "description": "Basic readable and writable stream interfaces that support piping.", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", "keywords": [ - "pipe", - "stream" + "phpunit", + "testing", + "xunit" ], - "time": "2015-10-07 18:32:58" + "time": "2019-06-19T12:03:56+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe" + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/c36f5e7cfce482fde5bf8d10d41a53591e0198fe", - "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "^5.6 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~5" + "phpunit/phpunit": "^5.7 || ^6.0" }, "type": "library", "extra": { @@ -3927,34 +4444,34 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2016-02-13 06:45:14" + "time": "2017-03-04T06:30:41+00:00" }, { "name": "sebastian/comparator", - "version": "1.2.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2" + "php": "^7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -3985,38 +4502,39 @@ } ], "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", + "homepage": "https://github.com/sebastianbergmann/comparator", "keywords": [ "comparator", "compare", "equality" ], - "time": "2015-07-26 15:48:44" + "time": "2018-07-12T15:12:46+00:00" }, { "name": "sebastian/diff", - "version": "1.4.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "~4.8" + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4041,34 +4559,40 @@ "description": "Diff implementation", "homepage": "https://github.com/sebastianbergmann/diff", "keywords": [ - "diff" + "diff", + "udiff", + "unidiff", + "unified diff" ], - "time": "2015-12-08 07:14:41" + "time": "2019-02-04T06:01:07+00:00" }, { "name": "sebastian/environment", - "version": "1.3.7", + "version": "4.2.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716" + "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4e8f0da10ac5802913afc151413bc8c53b6c2716", - "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "4.2-dev" } }, "autoload": { @@ -4093,34 +4617,34 @@ "environment", "hhvm" ], - "time": "2016-05-17 03:18:57" + "time": "2019-05-05T09:05:15+00:00" }, { "name": "sebastian/exporter", - "version": "1.2.2", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~1.0" + "php": "^7.0", + "sebastian/recursion-context": "^3.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -4160,27 +4684,30 @@ "export", "exporter" ], - "time": "2016-06-17 09:04:28" + "time": "2017-04-03T13:19:02+00:00" }, { "name": "sebastian/global-state", - "version": "1.1.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.2", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "ext-dom": "*", + "phpunit/phpunit": "^8.0" }, "suggest": { "ext-uopz": "*" @@ -4188,7 +4715,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4211,33 +4738,34 @@ "keywords": [ "global state" ], - "time": "2015-10-12 03:26:01" + "time": "2019-02-01T05:30:01+00:00" }, { "name": "sebastian/object-enumerator", - "version": "1.0.0", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "d4ca2fb70344987502567bc50081c03e6192fb26" + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/d4ca2fb70344987502567bc50081c03e6192fb26", - "reference": "d4ca2fb70344987502567bc50081c03e6192fb26", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", "shasum": "" }, "require": { - "php": ">=5.6", - "sebastian/recursion-context": "~1.0" + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "~5" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -4257,32 +4785,32 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2016-01-28 13:25:10" + "time": "2017-08-03T12:35:26+00:00" }, { - "name": "sebastian/recursion-context", - "version": "1.0.2", + "name": "sebastian/object-reflector", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -4295,44 +4823,39 @@ "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": "2015-11-11 19:50:13" + "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/resource-operations", - "version": "1.0.0", + "name": "sebastian/recursion-context", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", "shasum": "" }, "require": { - "php": ">=5.6.0" + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -4345,36 +4868,44 @@ "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 a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28 20:34:47" + "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/version", - "version": "2.0.0", + "name": "sebastian/resource-operations", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5", - "reference": "c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -4389,253 +4920,168 @@ "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-02-04 12:56:52" - }, - { - "name": "seld/jsonlint", - "version": "1.4.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "66834d3e3566bb5798db7294619388786ae99394" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/66834d3e3566bb5798db7294619388786ae99394", - "reference": "66834d3e3566bb5798db7294619388786ae99394", - "shasum": "" - }, - "require": { - "php": "^5.3 || ^7.0" - }, - "bin": [ - "bin/jsonlint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "email": "sebastian@phpunit.de" } ], - "description": "JSON Linter", - "keywords": [ - "json", - "linter", - "parser", - "validator" - ], - "time": "2015-11-21 02:21:41" + "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": "symfony/debug", - "version": "v3.1.0", + "name": "sebastian/type", + "version": "1.1.2", "source": { "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "c9ed5a44dbc783a352f06b20440863c7463de907" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "251ca774d58181fe1d3eda68843264eaae7e07ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/c9ed5a44dbc783a352f06b20440863c7463de907", - "reference": "c9ed5a44dbc783a352f06b20440863c7463de907", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/251ca774d58181fe1d3eda68843264eaae7e07ef", + "reference": "251ca774d58181fe1d3eda68843264eaae7e07ef", "shasum": "" }, "require": { - "php": ">=5.5.9", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + "php": "^7.2" }, "require-dev": { - "symfony/class-loader": "~2.8|~3.0", - "symfony/http-kernel": "~2.8|~3.0" + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "1.1-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "time": "2016-05-24 10:06:56" + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "time": "2019-06-19T06:39:12+00:00" }, { - "name": "symfony/expression-language", - "version": "v3.1.0", + "name": "sebastian/version", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/expression-language.git", - "reference": "9db6f176064fbd3f5ced4865be60b335b6a12723" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/9db6f176064fbd3f5ced4865be60b335b6a12723", - "reference": "9db6f176064fbd3f5ced4865be60b335b6a12723", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\ExpressionLanguage\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Symfony ExpressionLanguage Component", - "homepage": "https://symfony.com", - "time": "2016-03-10 11:16:56" + "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": "symfony/var-dumper", - "version": "v3.1.0", + "name": "theseer/tokenizer", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "436195b421e8c0493ca3e390c1fbecd8ee08c546" + "url": "https://github.com/theseer/tokenizer.git", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/436195b421e8c0493ca3e390c1fbecd8ee08c546", - "reference": "436195b421e8c0493ca3e390c1fbecd8ee08c546", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "twig/twig": "~1.20|~2.0" - }, - "suggest": { - "ext-symfony_debug": "" + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, "autoload": { - "files": [ - "Resources/functions/dump.php" - ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" } ], - "description": "Symfony mechanism for exploring and dumping PHP variables", - "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ], - "time": "2016-05-24 10:06:56" + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2019-06-13T22:48:21+00:00" }, { "name": "webmozart/assert", - "version": "1.0.2", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde" + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde", - "reference": "30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde", + "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" }, "require-dev": { - "phpunit/phpunit": "^4.6" + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -4659,21 +5105,18 @@ "check", "validate" ], - "time": "2015-08-24 13:29:44" + "time": "2018-12-25T11:19:39+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "twig/twig": 20, - "monolog/monolog": 20, - "dms/meetup-api-client": 20, - "deployer/deployer": 20 - }, + "stability-flags": [], "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=5.3.3" + "php": "^7.2", + "ext-ctype": "*", + "ext-iconv": "*" }, "platform-dev": [] } diff --git a/config/bootstrap.php b/config/bootstrap.php new file mode 100644 index 0000000..7810896 --- /dev/null +++ b/config/bootstrap.php @@ -0,0 +1,8 @@ + ['all' => true], + Snc\RedisBundle\SncRedisBundle::class => ['all' => true], + Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], + Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], + Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true], + Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], + Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true], + Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true], +]; diff --git a/config/dev.php b/config/dev.php deleted file mode 100644 index ecd399d..0000000 --- a/config/dev.php +++ /dev/null @@ -1,13 +0,0 @@ -register(new MonologServiceProvider(), array( - 'monolog.logfile' => __DIR__.'/../logs/silex.log', -)); diff --git a/config/packages/assets.yaml b/config/packages/assets.yaml new file mode 100644 index 0000000..79f3e38 --- /dev/null +++ b/config/packages/assets.yaml @@ -0,0 +1,3 @@ +framework: + assets: + json_manifest_path: '%kernel.project_dir%/web/assets/manifest.json' diff --git a/config/packages/cache.yaml b/config/packages/cache.yaml new file mode 100644 index 0000000..01f3d9f --- /dev/null +++ b/config/packages/cache.yaml @@ -0,0 +1,7 @@ +framework: + cache: + pools: + cache.default: + adapter: cache.adapter.redis + default_lifetime: 900 + provider: snc_redis.default diff --git a/config/packages/dev/debug.yaml b/config/packages/dev/debug.yaml new file mode 100644 index 0000000..26d4e53 --- /dev/null +++ b/config/packages/dev/debug.yaml @@ -0,0 +1,4 @@ +debug: + # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser. + # See the "server:dump" command to start a new server. + dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%" diff --git a/config/packages/dev/easy_log_handler.yaml b/config/packages/dev/easy_log_handler.yaml new file mode 100644 index 0000000..27bfc60 --- /dev/null +++ b/config/packages/dev/easy_log_handler.yaml @@ -0,0 +1,16 @@ +services: + EasyCorp\EasyLog\EasyLogHandler: + public: false + arguments: ['%kernel.logs_dir%/%kernel.environment%.log'] + +#// FIXME: How to add this configuration automatically without messing up with the monolog configuration? +#monolog: +# handlers: +# buffered: +# type: buffer +# handler: easylog +# channels: ['!event'] +# level: debug +# easylog: +# type: service +# id: EasyCorp\EasyLog\EasyLogHandler diff --git a/config/packages/dev/monolog.yaml b/config/packages/dev/monolog.yaml new file mode 100644 index 0000000..7155458 --- /dev/null +++ b/config/packages/dev/monolog.yaml @@ -0,0 +1,11 @@ +monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event"] + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine", "!console"] diff --git a/config/packages/dev/routing.yaml b/config/packages/dev/routing.yaml new file mode 100644 index 0000000..4116679 --- /dev/null +++ b/config/packages/dev/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: true diff --git a/config/packages/dev/web_profiler.yaml b/config/packages/dev/web_profiler.yaml new file mode 100644 index 0000000..e92166a --- /dev/null +++ b/config/packages/dev/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: true + intercept_redirects: false + +framework: + profiler: { only_exceptions: false } diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml new file mode 100644 index 0000000..bc8ccec --- /dev/null +++ b/config/packages/framework.yaml @@ -0,0 +1,8 @@ +framework: + secret: '%secret%' + session: + handler_id: ~ + cookie_secure: auto + cookie_samesite: lax + php_errors: + log: true diff --git a/config/packages/prod/monolog.yaml b/config/packages/prod/monolog.yaml new file mode 100644 index 0000000..5bcdf06 --- /dev/null +++ b/config/packages/prod/monolog.yaml @@ -0,0 +1,23 @@ +monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_http_codes: [404, 405] + nested: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine"] + deprecation: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log" + deprecation_filter: + type: filter + handler: deprecation + max_level: info + channels: ["php"] diff --git a/config/packages/prod/webpack_encore.yaml b/config/packages/prod/webpack_encore.yaml new file mode 100644 index 0000000..d0b3ba8 --- /dev/null +++ b/config/packages/prod/webpack_encore.yaml @@ -0,0 +1,4 @@ +#webpack_encore: + # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes) + # Available in version 1.2 + #cache: true diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml new file mode 100644 index 0000000..a15c4ec --- /dev/null +++ b/config/packages/routing.yaml @@ -0,0 +1,4 @@ +framework: + router: + strict_requirements: ~ + utf8: true diff --git a/config/packages/sensio_framework_extra.yaml b/config/packages/sensio_framework_extra.yaml new file mode 100644 index 0000000..1821ccc --- /dev/null +++ b/config/packages/sensio_framework_extra.yaml @@ -0,0 +1,3 @@ +sensio_framework_extra: + router: + annotations: false diff --git a/config/packages/snc_redis.yaml b/config/packages/snc_redis.yaml new file mode 100644 index 0000000..ab4b76b --- /dev/null +++ b/config/packages/snc_redis.yaml @@ -0,0 +1,6 @@ +snc_redis: + clients: + default: + type: predis + alias: default + dsn: '%redis_dsn%' diff --git a/config/packages/test/framework.yaml b/config/packages/test/framework.yaml new file mode 100644 index 0000000..d051c84 --- /dev/null +++ b/config/packages/test/framework.yaml @@ -0,0 +1,4 @@ +framework: + test: true + session: + storage_id: session.storage.mock_file diff --git a/config/packages/test/monolog.yaml b/config/packages/test/monolog.yaml new file mode 100644 index 0000000..2762653 --- /dev/null +++ b/config/packages/test/monolog.yaml @@ -0,0 +1,7 @@ +monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event"] diff --git a/config/packages/test/routing.yaml b/config/packages/test/routing.yaml new file mode 100644 index 0000000..4116679 --- /dev/null +++ b/config/packages/test/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: true diff --git a/config/packages/test/web_profiler.yaml b/config/packages/test/web_profiler.yaml new file mode 100644 index 0000000..03752de --- /dev/null +++ b/config/packages/test/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: false + intercept_redirects: false + +framework: + profiler: { collect: false } diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml new file mode 100644 index 0000000..d1582a2 --- /dev/null +++ b/config/packages/twig.yaml @@ -0,0 +1,4 @@ +twig: + default_path: '%kernel.project_dir%/templates' + debug: '%kernel.debug%' + strict_variables: '%kernel.debug%' diff --git a/config/packages/webpack_encore.yaml b/config/packages/webpack_encore.yaml new file mode 100644 index 0000000..1ad206b --- /dev/null +++ b/config/packages/webpack_encore.yaml @@ -0,0 +1,14 @@ +webpack_encore: + # The path where Encore is building the assets. + # This should match Encore.setOutputPath() in webpack.config.js. + output_path: '%kernel.project_dir%/public/build' + # If multiple builds are defined (as shown below), you can disable the default build: + # output_path: false + + # if using Encore.enableIntegrityHashes() specify the crossorigin attribute value (default: false, or use 'anonymous' or 'use-credentials') + # crossorigin: 'anonymous' + + # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes). + # To enable caching for the production environment, creating a webpack_encore.yaml in the config/packages/prod directory with this value set to true + # Available in version 1.2 + #cache: 'false' diff --git a/config/prod.php b/config/prod.php deleted file mode 100644 index eb2ebb2..0000000 --- a/config/prod.php +++ /dev/null @@ -1,3 +0,0 @@ - 0) { + Raffler.init($checkins.data('winners').split(',')); +} diff --git a/source/scss/main.scss b/source/scss/main.scss index 47d8379..ff8634d 100644 --- a/source/scss/main.scss +++ b/source/scss/main.scss @@ -4,11 +4,8 @@ $gutter-width: 1em; $grid-padding: $gutter-width; /* compass */ -@import "compass/reset"; -@import "compass/css3"; - -/* other plugins */ -@import "susy"; +@import "~compass-mixins/lib/compass/reset"; +@import "~compass-mixins/lib/compass/css3"; body { color: #ffffff; @@ -18,8 +15,16 @@ body { font-weight: 300; } -.container { - @include container; +.container{ + max-width: 100%; + margin-left: auto; + margin-right: auto; + + &:after{ + content: " "; + display: block; + clear: both; + } } .logo { @@ -37,7 +42,7 @@ body { width: 444px; height: 80px; text-indent: -9999px; - background-image: url("/img/logo.png"); + background-image: url("../images/logo.png"); } .secondary { display: inline-block; @@ -46,7 +51,7 @@ body { } } -@include susy-breakpoint(0em 40em) { +@media (max-width:40em) { .logo { line-height: 60px; diff --git a/src/Controller/EventController.php b/src/Controller/EventController.php new file mode 100644 index 0000000..40ac5ae --- /dev/null +++ b/src/Controller/EventController.php @@ -0,0 +1,97 @@ +meetupService = $meetupService; + $this->randomService = $randomService; + $this->checkInService = $checkInService; + $this->twig = $twig; + } + + /** + * @Route(name="homepage", path="/", methods={"GET"}) + */ + public function index(): Response + { + return new Response($this->twig->render( + 'index.html.twig', + ['meetups' => $this->meetupService->getPresentAndPastEvents()] + )); + } + + /** + * @Route(name="event", path="/event/{id}", methods={"GET"}) + */ + public function event(string $id): Response + { + $event = $this->meetupService->getEvent($id); + + $checkins = $this->checkInService->getCheckInsForEvent($id); + + $winners = (count($checkins) > 0)? $this->randomService->getRandomNumbers(count($checkins)) : []; + return new Response($this->twig->render( + 'event.html.twig', + ['event' => $event, 'winners' => $winners, 'checkins' => $checkins] + )); + } + + /** + * @Route(name="event_checkin", path="/event/{eventId}/checkin", methods={"GET", "POST"}) + */ + public function checkIn(Request $request, string $eventId): Response + { + if ($request->isMethod(Request::METHOD_POST)) { + $userId = $request->request->get('user_id'); + + $this->checkInService->checkIn($eventId, $userId); + + return new JsonResponse(['result' => 'ok']); + } + + $event = $this->meetupService->getEvent($eventId); + $checkins = $this->checkInService->getCheckInsForEvent($eventId); + + return new Response($this->twig->render( + 'event_checkin.html.twig', + ['event' => $event, 'checkins' => $checkins] + )); + } +} diff --git a/src/Kernel.php b/src/Kernel.php new file mode 100644 index 0000000..bb38abb --- /dev/null +++ b/src/Kernel.php @@ -0,0 +1,54 @@ +getProjectDir().'/config/bundles.php'; + foreach ($contents as $class => $envs) { + if ($envs[$this->environment] ?? $envs['all'] ?? false) { + yield new $class(); + } + } + } + + public function getProjectDir(): string + { + return \dirname(__DIR__); + } + + protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void + { + $container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php')); + $container->setParameter('container.dumper.inline_class_loader', true); + $confDir = $this->getProjectDir().'/config'; + + $loader->load($confDir.'/parameters'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{packages}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob'); + } + + protected function configureRoutes(RouteCollectionBuilder $routes): void + { + $confDir = $this->getProjectDir().'/config'; + + $routes->import($confDir.'/{routes}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, '/', 'glob'); + $routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob'); + $routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob'); + } +} diff --git a/src/Raffle/CachingMeetupService.php b/src/Raffle/CachingMeetupService.php new file mode 100644 index 0000000..f7a9c63 --- /dev/null +++ b/src/Raffle/CachingMeetupService.php @@ -0,0 +1,71 @@ +inner = $inner; + $this->cacheItemPool = $cacheItemPool; + $this->requestStack = $requestStack; + } + + public function getPresentAndPastEvents(): array + { + $bustCache = $this->requestStack->getMasterRequest()->query->get('cache_busting', false); + + $cachedEvents = $this->cacheItemPool->getItem('events_cache'); + if (!$bustCache && $cachedEvents->isHit()) { + return $cachedEvents->get(); + } + + $events = $this->inner->getPresentAndPastEvents(); + + $cachedEvents->set($events); + $cachedEvents->expiresAfter(self::ONE_HOUR); + $this->cacheItemPool->save($cachedEvents); + + return $events; + } + + public function getEvent(string $id): array + { + $cachedEvent = $this->cacheItemPool->getItem('event_cache_'.$id); + if ($cachedEvent->isHit()) { + return $cachedEvent->get(); + } + + $event = $this->inner->getEvent($id); + + $cachedEvent->set($event); + $cachedEvent->expiresAfter(self::ONE_HOUR); + $this->cacheItemPool->save($cachedEvent); + + return $event; + } +} diff --git a/src/Raffle/CheckInService.php b/src/Raffle/CheckInService.php new file mode 100644 index 0000000..a971914 --- /dev/null +++ b/src/Raffle/CheckInService.php @@ -0,0 +1,30 @@ +predis = $predis; + } + + public function checkIn(string $eventId, string $userId): void + { + $this->predis->lpush('checkin_'.$eventId, [$userId]); + } + + public function getCheckInsForEvent(string $eventId): array + { + return array_filter($this->predis->lrange('checkin_'.$eventId, 0, 300)); + } +} diff --git a/src/Raffle/MeetupService.php b/src/Raffle/MeetupService.php index cc74c63..75839d3 100644 --- a/src/Raffle/MeetupService.php +++ b/src/Raffle/MeetupService.php @@ -1,12 +1,11 @@ client = $client; $this->group = $group; - $this->cache = $cache; } - /** - * Fetch all events in the past and up to a day in the future. - * - * @param bool $bustCache - * - * @return MultiResultResponse - */ - private function getEvents($bustCache = false) + public function getPresentAndPastEvents(): array { - $cached = $this->getFromCache('events_cache'); - if ($bustCache == false && $cached !== null) { - return $cached; - } - - // Fetch past and future events (only upcoming contains the current event) $events = $this->client->getEvents( - array( + [ 'group_urlname' => $this->group, 'status' => 'past,upcoming', 'desc' => 'desc' - ) + ] ); - $this->saveInCache('events_cache', $events); - - return $events; - } - - /** - * @param bool $bustCache - * - * @return mixed - */ - public function getPresentAndPastEvents($bustCache = false) - { - $events = $this->getEvents($bustCache); - // Filter out events further in the future than a day $dayFromNow = (time() + (24 * 60 * 60)) * 1000; return $events->filter(function($value) use ($dayFromNow) { @@ -88,63 +46,28 @@ public function getPresentAndPastEvents($bustCache = false) /** * Get a single event. - * - * @param string $id - * @return array */ - public function getEvent($id) + public function getEvent(string $id): array { - - $cached = $this->getFromCache('event_cache_'.$id); - if ($cached !== null) { - return $cached; - } - // Fetch, event, checkins and RSVPs (only the latter has pictures) - $event = $this->client->getEvent(array('id' => $id)); + $event = $this->client->getEvents(['event_id' => $id]); - $rsvps = $this->client->getRSVPs( - array('event_id' => $id, 'rsvp' => 'yes', 'order' => 'name', 'fields' => 'host', 'page' => 300) + $rsvps = $this->client->getRsvps( + ['event_id' => $id, 'rsvp' => 'yes', 'order' => 'name', 'fields' => 'host', 'page' => 300] ); - $event = $event->toArray(); - $event['checkins'] = array(); - $event['rsvps'] = array(); + $event = $event->toArray()[0]; + $event['checkins'] = []; + $event['rsvps'] = []; foreach ($rsvps as $rsvp) { $event['rsvps'][] = array( - 'id' => $rsvp['member']['member_id'], - 'name' => $rsvp['member']['name'], - 'photo' => isset($rsvp['member_photo']) ? $rsvp['member_photo'] : null, - 'host' => $rsvp['host'] + 'id' => $rsvp['member']['member_id'], + 'name' => $rsvp['member']['name'], + 'photo' => $rsvp['member_photo'] ?? null, + 'host' => $rsvp['host'] ); } - $this->saveInCache('event_cache_'.$id, $event); - return $event; } - - /** - * @param string $key - * @param mixed $data - */ - private function saveInCache($key, $data) - { - $value = serialize($data); - $this->cache->set($key, $value); - $this->cache->expire($key, 3600); - } - - /** - * @param string $key - * @return mixed|null - */ - private function getFromCache($key) - { - if (! $this->cache->exists($key)) { - return null; - } - - return unserialize($this->cache->get($key)); - } } diff --git a/src/Raffle/MeetupServiceInterface.php b/src/Raffle/MeetupServiceInterface.php new file mode 100644 index 0000000..a122d92 --- /dev/null +++ b/src/Raffle/MeetupServiceInterface.php @@ -0,0 +1,10 @@ +getGenerator(new Strength(Strength::MEDIUM)); $numbers = []; - while(count($numbers) < $amount) { + while (count($numbers) < $amount) { // Amount minus 1 since we want results ranging from zero till amount $numbers[] = $generator->generateInt(0, $amount - 1); $numbers = array_unique($numbers); diff --git a/src/app.php b/src/app.php deleted file mode 100644 index c8599b5..0000000 --- a/src/app.php +++ /dev/null @@ -1,52 +0,0 @@ -register(new UrlGeneratorServiceProvider()); -$app->register(new ValidatorServiceProvider()); - -// Twig Configuration -$app->register(new TwigServiceProvider(), array( - 'twig.path' => array(__DIR__.'/../templates'), - 'twig.options' => array('cache' => __DIR__.'/../cache'), -)); -$app['twig'] = $app->share($app->extend('twig', function($twig) { - return $twig; -})); -$app->register(new Silex\Provider\UrlGeneratorServiceProvider()); - -// Session -$app->register(new Silex\Provider\SessionServiceProvider()); - -// Meetup service -$config = [ - 'key' => '', -]; - -if (isset($app['config']['meetup_api_key'])) { - $config['key'] = $app['config']['meetup_api_key']; -} - -$app['meetup'] = new MeetupService( - MeetupKeyAuthClient::factory($config), - $app['config']['meetup_group'], - new Client() -); - -// Random service -$app['random'] = new RandomService(); - -return $app; diff --git a/src/controllers.php b/src/controllers.php deleted file mode 100644 index 12a0e4a..0000000 --- a/src/controllers.php +++ /dev/null @@ -1,83 +0,0 @@ -get('/', function (Request $request) use ($app) { - $cacheBusting = filter_var($request->get('cache_busting', false), FILTER_VALIDATE_BOOLEAN); - - /** @var \Raffle\MeetupService $meetupService */ - $meetupService = $app['meetup']; - - return $app['twig']->render( - 'index.html.twig', - array('meetups' => $meetupService->getPresentAndPastEvents($cacheBusting)) - ); -})->bind('homepage'); - -// Specific event -$app->get('/event/{id}', function ($id) use ($app) { - $event = $app['meetup']->getEvent($id); - - /** @var RandomService $randomService */ - $randomService = $app['random']; - - $client = new Client(); - $checkins = array_filter($client->lrange('checkin_'.$id, 0, 300)); - - $winners = (count($checkins) > 0)? $randomService->getRandomNumbers(count($checkins)) : array(); - return $app['twig']->render( - 'event.html.twig', - array('event' => $event, 'winners' => $winners, 'checkins' => $checkins) - ); -})->bind('event'); - -// Check-in page for Event -$app->get('/event/{id}/checkin', function ($id, Request $request) use ($app) { - - $event = $app['meetup']->getEvent($id); - $client = new Client(); - $checkins = array_filter($client->lrange('checkin_'.$id, 0, 300)); - - return $app['twig']->render( - 'event_checkin.html.twig', - array('event' => $event, 'checkins' => $checkins) - ); -})->bind('event_checkin'); - -// Checks a user into an event -$app->post('/user/checkin', function (Request $request) use ($app) { - - $userId = $request->get('user_id'); - $eventId = $request->get('event_id'); - - $client = new Client(); - $client->lpush('checkin_'.$eventId, $userId); - - return new Response( - json_encode(array('result' => 'ok')), - 200, - array('Content-Type' => 'application/json') - ); - -})->bind('user_checkin'); - -// Error page -$app->error(function (\Exception $e, $code) use ($app) { - if ($app['debug']) { - return; - } - - $page = 404 == $code ? '404.html' : '500.html'; - - return new Response($app['twig']->render($page, array('code' => $code)), $code); -}); diff --git a/symfony.lock b/symfony.lock new file mode 100644 index 0000000..45d6fe0 --- /dev/null +++ b/symfony.lock @@ -0,0 +1,409 @@ +{ + "dms/meetup-api-client": { + "version": "v2.3.1" + }, + "doctrine/annotations": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "cb4152ebcadbe620ea2261da1a1c5a9b8cea7672" + }, + "files": [ + "config/routes/annotations.yaml" + ] + }, + "doctrine/cache": { + "version": "v1.8.0" + }, + "doctrine/collections": { + "version": "v1.6.2" + }, + "doctrine/event-manager": { + "version": "v1.0.0" + }, + "doctrine/instantiator": { + "version": "1.2.0" + }, + "doctrine/lexer": { + "version": "1.0.2" + }, + "doctrine/persistence": { + "version": "1.1.1" + }, + "doctrine/reflection": { + "version": "v1.0.0" + }, + "easycorp/easy-log-handler": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "70062abc2cd58794d2a90274502f81b55cd9951b" + }, + "files": [ + "config/packages/dev/easy_log_handler.yaml" + ] + }, + "guzzle/guzzle": { + "version": "v3.8.1" + }, + "ircmaxell/random-lib": { + "version": "v1.2.0" + }, + "ircmaxell/security-lib": { + "version": "v1.1.0" + }, + "monolog/monolog": { + "version": "1.24.0" + }, + "myclabs/deep-copy": { + "version": "1.9.1" + }, + "phar-io/manifest": { + "version": "1.0.3" + }, + "phar-io/version": { + "version": "2.0.1" + }, + "phpdocumentor/reflection-common": { + "version": "1.0.1" + }, + "phpdocumentor/reflection-docblock": { + "version": "4.3.1" + }, + "phpdocumentor/type-resolver": { + "version": "0.4.0" + }, + "phpspec/prophecy": { + "version": "1.8.1" + }, + "phpunit/php-code-coverage": { + "version": "7.0.5" + }, + "phpunit/php-file-iterator": { + "version": "2.0.2" + }, + "phpunit/php-text-template": { + "version": "1.2.1" + }, + "phpunit/php-timer": { + "version": "2.1.2" + }, + "phpunit/php-token-stream": { + "version": "3.0.1" + }, + "phpunit/phpunit": { + "version": "4.7", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.7", + "ref": "f6f9ee3a511e9d9ad6a53d92fbaa1a709ed8c1ca" + }, + "files": [ + ".env.test", + "phpunit.xml.dist", + "config/bootstrap.php", + "tests/.gitignore" + ] + }, + "predis/predis": { + "version": "v1.1.1" + }, + "psr/cache": { + "version": "1.0.1" + }, + "psr/container": { + "version": "1.0.0" + }, + "psr/log": { + "version": "1.1.0" + }, + "sebastian/code-unit-reverse-lookup": { + "version": "1.0.1" + }, + "sebastian/comparator": { + "version": "3.0.2" + }, + "sebastian/diff": { + "version": "3.0.2" + }, + "sebastian/environment": { + "version": "4.2.2" + }, + "sebastian/exporter": { + "version": "3.1.0" + }, + "sebastian/global-state": { + "version": "3.0.0" + }, + "sebastian/object-enumerator": { + "version": "3.0.3" + }, + "sebastian/object-reflector": { + "version": "1.1.1" + }, + "sebastian/recursion-context": { + "version": "3.0.0" + }, + "sebastian/resource-operations": { + "version": "2.0.1" + }, + "sebastian/type": { + "version": "1.1.2" + }, + "sebastian/version": { + "version": "2.0.1" + }, + "sensio/framework-extra-bundle": { + "version": "5.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.2", + "ref": "fb7e19da7f013d0d422fa9bce16f5c510e27609b" + }, + "files": [ + "config/packages/sensio_framework_extra.yaml" + ] + }, + "snc/redis-bundle": { + "version": "2.0", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "master", + "version": "2.0", + "ref": "e9c58bfc414cfb7f06e8e5ae9f589868498f5d6a" + }, + "files": [ + "config/packages/snc_redis.yaml" + ] + }, + "symfony/asset": { + "version": "v4.3.1" + }, + "symfony/cache": { + "version": "v4.3.1" + }, + "symfony/cache-contracts": { + "version": "v1.1.1" + }, + "symfony/config": { + "version": "v4.3.1" + }, + "symfony/console": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "482d233eb8de91ebd042992077bbd5838858890c" + }, + "files": [ + "bin/console", + "config/bootstrap.php" + ] + }, + "symfony/contracts": { + "version": "v1.1.0" + }, + "symfony/debug": { + "version": "v4.3.1" + }, + "symfony/debug-bundle": { + "version": "4.1", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.1", + "ref": "f8863cbad2f2e58c4b65fa1eac892ab189971bea" + }, + "files": [ + "config/packages/dev/debug.yaml" + ] + }, + "symfony/debug-pack": { + "version": "v1.0.7" + }, + "symfony/dependency-injection": { + "version": "v4.3.1" + }, + "symfony/dotenv": { + "version": "v4.3.1" + }, + "symfony/event-dispatcher": { + "version": "v4.3.1" + }, + "symfony/event-dispatcher-contracts": { + "version": "v1.1.1" + }, + "symfony/filesystem": { + "version": "v4.3.1" + }, + "symfony/finder": { + "version": "v4.3.1" + }, + "symfony/flex": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "dc3fc2e0334a4137c47cfd5a3ececc601fa61a0b" + }, + "files": [ + ".env" + ] + }, + "symfony/framework-bundle": { + "version": "4.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.2", + "ref": "0dfae0b1cd8349ae47659b35602f772b4a7e2280" + }, + "files": [ + "config/bootstrap.php", + "config/packages/cache.yaml", + "config/packages/framework.yaml", + "config/packages/test/framework.yaml", + "config/services.yaml", + "public/index.php", + "src/Controller/.gitignore", + "src/Kernel.php" + ] + }, + "symfony/http-foundation": { + "version": "v4.3.1" + }, + "symfony/http-kernel": { + "version": "v4.3.1" + }, + "symfony/mime": { + "version": "v4.3.1" + }, + "symfony/monolog-bridge": { + "version": "v4.3.1" + }, + "symfony/monolog-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "6240c6d43e8237a32452f057f81816820fd56ab6" + }, + "files": [ + "config/packages/dev/monolog.yaml", + "config/packages/prod/monolog.yaml", + "config/packages/test/monolog.yaml" + ] + }, + "symfony/polyfill-intl-idn": { + "version": "v1.11.0" + }, + "symfony/polyfill-mbstring": { + "version": "v1.11.0" + }, + "symfony/polyfill-php72": { + "version": "v1.11.0" + }, + "symfony/polyfill-php73": { + "version": "v1.11.0" + }, + "symfony/profiler-pack": { + "version": "v1.0.4" + }, + "symfony/routing": { + "version": "4.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.2", + "ref": "5374e24d508ba8fd6ba9eb15170255fdb778316a" + }, + "files": [ + "config/packages/dev/routing.yaml", + "config/packages/routing.yaml", + "config/packages/test/routing.yaml", + "config/routes.yaml" + ] + }, + "symfony/service-contracts": { + "version": "v1.1.2" + }, + "symfony/stopwatch": { + "version": "v4.3.1" + }, + "symfony/twig-bridge": { + "version": "v4.3.1" + }, + "symfony/twig-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "369b5b29dc52b2c190002825ae7ec24ab6f962dd" + }, + "files": [ + "config/packages/twig.yaml", + "config/routes/dev/twig.yaml", + "templates/base.html.twig" + ] + }, + "symfony/var-dumper": { + "version": "v4.3.1" + }, + "symfony/var-exporter": { + "version": "v4.3.1" + }, + "symfony/web-profiler-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "6bdfa1a95f6b2e677ab985cd1af2eae35d62e0f6" + }, + "files": [ + "config/packages/dev/web_profiler.yaml", + "config/packages/test/web_profiler.yaml", + "config/routes/dev/web_profiler.yaml" + ] + }, + "symfony/webpack-encore-bundle": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "e33393e32759195f8e10c9d4faceb0d232a7e1de" + }, + "files": [ + "assets/css/app.css", + "assets/js/app.js", + "config/packages/assets.yaml", + "config/packages/prod/webpack_encore.yaml", + "config/packages/webpack_encore.yaml", + "package.json", + "webpack.config.js" + ] + }, + "symfony/yaml": { + "version": "v4.3.1" + }, + "theseer/tokenizer": { + "version": "1.1.3" + }, + "twig/twig": { + "version": "v2.11.3" + }, + "webmozart/assert": { + "version": "1.4.0" + } +} diff --git a/templates/base.html.twig b/templates/base.html.twig new file mode 100644 index 0000000..043f42d --- /dev/null +++ b/templates/base.html.twig @@ -0,0 +1,12 @@ + + + + + {% block title %}Welcome!{% endblock %} + {% block stylesheets %}{% endblock %} + + + {% block body %}{% endblock %} + {% block javascripts %}{% endblock %} + + diff --git a/templates/404.html b/templates/bundles/TwigBundle/Exception/error404.html.twig similarity index 100% rename from templates/404.html rename to templates/bundles/TwigBundle/Exception/error404.html.twig diff --git a/templates/500.html b/templates/bundles/TwigBundle/Exception/error500.html.twig similarity index 100% rename from templates/500.html rename to templates/bundles/TwigBundle/Exception/error500.html.twig diff --git a/templates/event.html.twig b/templates/event.html.twig index fbc0990..abaa8c9 100644 --- a/templates/event.html.twig +++ b/templates/event.html.twig @@ -3,14 +3,13 @@ {% block title event.name %} {% block content %} -

{{ event.name }}

-
- +
+ {% for checkin in event.rsvps if checkin.id in checkins %} -
+
{{ checkin.name|default('Y U NO HAVE NAME?') }}
{% endfor %} @@ -23,11 +22,5 @@ {% block javascripts %} - - + {% endblock %} diff --git a/templates/event_checkin.html.twig b/templates/event_checkin.html.twig index 92c7b88..87c5d8e 100644 --- a/templates/event_checkin.html.twig +++ b/templates/event_checkin.html.twig @@ -13,7 +13,7 @@
{{ rsvp.name }} @@ -33,12 +33,11 @@ var params, $rsvpBlock = $(this); params = { - user_id: $rsvpBlock.attr('data-user-id'), - event_id: "{{ event.id }}" + user_id: $rsvpBlock.attr('data-user-id') }; if (window.confirm("Checkin as " + $rsvpBlock.attr('data-user-name') + "?")) { - $.post("/user/checkin", params, function() { + $.post(window.location, params, function() { $rsvpBlock.addClass('checked_in'); $rsvpBlock.removeClass('not_checked_in'); $rsvpBlock.unbind('click'); diff --git a/templates/layout.html.twig b/templates/layout.html.twig index ca09124..0e47de0 100644 --- a/templates/layout.html.twig +++ b/templates/layout.html.twig @@ -5,12 +5,7 @@ - - - - +
diff --git a/tests/unit/Raffle/RandomServiceTest.php b/tests/unit/Raffle/RandomServiceTest.php index b1b6255..437218b 100644 --- a/tests/unit/Raffle/RandomServiceTest.php +++ b/tests/unit/Raffle/RandomServiceTest.php @@ -1,39 +1,42 @@ service = new RandomService(); } - public function test_amount_of_random_numbers_returned() + public function test_amount_of_random_numbers_returned(): void { $numbers = $this->service->getRandomNumbers(10); $this->assertCount(10, $numbers); } - public function test_list_of_random_numbers_are_unique() + public function test_list_of_random_numbers_are_unique(): void { $numbers = $this->service->getRandomNumbers(10); $uniqueNumbers = array_unique($numbers); $this->assertSame($numbers, $uniqueNumbers); } - public function test_list_is_empty_when_amount_zero() + public function test_list_is_empty_when_amount_zero(): void { // The service should not return any numbers if the amount is zero $this->assertEmpty($this->service->getRandomNumbers(0)); } - public function test_list_includes_zero() + public function test_list_includes_zero(): void { // The service should return _all_ numbers for $amount in random order $this->assertContains(0, $this->service->getRandomNumbers(1)); diff --git a/web/assets/entrypoints.json b/web/assets/entrypoints.json new file mode 100644 index 0000000..04fa1ee --- /dev/null +++ b/web/assets/entrypoints.json @@ -0,0 +1,14 @@ +{ + "entrypoints": { + "raffler": { + "js": [ + "/assets/raffler.7844e51a893abf22f9fc.js" + ] + }, + "main": { + "css": [ + "/assets/main.1fe516e942e8297eae97.css" + ] + } + } +} \ No newline at end of file diff --git a/web/assets/images/avatar.3d50e83f.png b/web/assets/images/avatar.3d50e83f.png new file mode 100644 index 0000000..ccf9f34 Binary files /dev/null and b/web/assets/images/avatar.3d50e83f.png differ diff --git a/web/assets/images/logo.de0bea12.png b/web/assets/images/logo.de0bea12.png new file mode 100644 index 0000000..be26559 Binary files /dev/null and b/web/assets/images/logo.de0bea12.png differ diff --git a/web/assets/main.1fe516e942e8297eae97.css b/web/assets/main.1fe516e942e8297eae97.css new file mode 100644 index 0000000..61297f1 --- /dev/null +++ b/web/assets/main.1fe516e942e8297eae97.css @@ -0,0 +1,169 @@ +/* compass */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font: inherit; + font-size: 100%; + vertical-align: baseline; } + +html { + line-height: 1; } + +ol, ul { + list-style: none; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: middle; } + +q, blockquote { + quotes: none; } + q:before, q:after, blockquote:before, blockquote:after { + content: ""; + content: none; } + +a img { + border: none; } + +elements-of-type(html5-block) { + display: block; } + +body { + color: #ffffff; + background: #000000; + font-family: 'Open Sans', Arial, Helvetica, sans-serif; + font-size: 20px; + font-weight: 300; } + +.container { + max-width: 100%; + margin-left: auto; + margin-right: auto; } + .container:after { + content: " "; + display: block; + clear: both; } + +.logo { + margin: 1em 0 0 0; + text-align: center; + line-height: 120px; } + .logo a { + color: #ffffff; + text-decoration: none; } + .logo .primary { + display: inline-block; + width: 444px; + height: 80px; + text-indent: -9999px; + background-image: url(/assets/images/logo.de0bea12.png); } + .logo .secondary { + display: inline-block; + font-size: 65px; + font-style: italic; } + +@media (max-width: 40em) { + .logo { + line-height: 60px; } + .logo .primary { + width: 222px; + height: 40px; + background-size: 222px; } + .logo .secondary { + display: block; + font-size: 45px; + font-style: italic; + margin-bottom: 1em; } } + +.title { + margin: 0 0 1.5em 0; + font-size: 40px; + text-align: center; } + +.meetups li { + font-size: 20px; } + +.meetups a { + background: #1a1a1a; + display: block; + color: #fff; + text-decoration: none; + padding: 0.5em; + margin-bottom: 1px; } + .meetups a:hover { + background: #212121; } + +.meetups .first a { + color: #b3ff97; + text-shadow: 0 -1px 0 #000, 0px 0 5px rgba(179, 255, 151, 0.8); + font-size: 1.2em; } + +.checkins, .rsvps { + text-align: center; } + .checkins .checkin, .rsvps .checkin, .rsvps .rsvp { + -webkit-border-radius: 16px 16px; + -moz-border-radius: 16px / 16px; + border-radius: 16px / 16px; + border: 8px solid #000; + display: inline-block; + width: 100px; + height: 100px; + margin: 0 1em 1em 0; + background-position: center; + background-size: cover; + text-align: center; + background-color: #cccccc; } + .checkins .checkin .name, .rsvps .checkin .name, .rsvps .rsvp .name { + display: none; } + .checkins .checkin.selected, .rsvps .checkin.selected, .rsvps .selected.rsvp { + border-color: #f00; } + .checkins .checkin.loser, .rsvps .checkin.loser, .rsvps .loser.rsvp { + display: none; + opacity: 0; } + .checkins .checkin.winner, .rsvps .checkin.winner, .rsvps .winner.rsvp { + position: relative; + border: 0; + width: 300px; + height: 400px; } + .checkins .checkin.winner .name, .rsvps .checkin.winner .name, .rsvps .winner.rsvp .name { + position: absolute; + top: 300px; + width: 100%; + display: block; + font-size: 2em; + background-color: rgba(0, 0, 0, 0.6); + padding: 3px; } + .checkins .checkin-link, .rsvps .checkin-link { + margin-bottom: 1em; } + .checkins .checkin-link a:link, .rsvps .checkin-link a:link, .checkins .checkin-link a:visited, .rsvps .checkin-link a:visited { + color: white; } + +.rsvps .rsvp:hover { + cursor: pointer; } + +.rsvps .rsvp.checked_in { + border: 8px solid #A1C99D; } + +.rsvps .tap-to-checkin { + margin-bottom: 1em; } + + +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vbWFpbi5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvY29tcGFzcy1taXhpbnMvbGliL2NvbXBhc3MvcmVzZXQvX3V0aWxpdGllcy5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvY29tcGFzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fc2hhcmVkLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0E7QUNERTs7Ozs7Ozs7Ozs7OztFQTZEQSxTQUFTO0VBQ1QsVUFBVTtFQUNWLFNBQVM7RUFJVCxhQUFhO0VBQ2IsZUFBZTtFQUNmLHdCQUF3Qjs7QUFwRHhCO0VBNkRBLGNBQWM7O0FBM0RkO0VBK0RBLGdCQUFnQjs7QUE3RGhCO0VBaUVBLHlCQUF5QjtFQUN6QixpQkFBaUI7O0FBaEVqQjtFQW9FQSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLHNCQUFzQjs7QUFwRXRCO0VBd0VBLFlBQVk7RUF4RVo7SUEwRUUsV0FBVztJQUNYLGFBQWE7O0FBekVmO0VBNkVBLFlBQVk7O0FBT1o7RUFDRSxjQUFjOztBRDNHbEI7RUFDSSxjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLHNEQUFzRDtFQUN0RCxlQUFlO0VBQ2YsZ0JBQWdCOztBQUdwQjtFQUNJLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsa0JBQWtCO0VBSHRCO0lBTVEsWUFBWTtJQUNaLGNBQWM7SUFDZCxXQUFXOztBQUluQjtFQUNJLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBSHRCO0lBTVEsY0FBYztJQUNkLHFCQUFxQjtFQVA3QjtJQVdRLHFCQUFxQjtJQUNyQixZQUFZO0lBQ1osWUFBWTtJQUNaLG9CQUFvQjtJQUNwQiwrQ0FBMkM7RUFmbkQ7SUFrQlEscUJBQXFCO0lBQ3JCLGVBQWU7SUFDZixrQkFBa0I7O0FBSTFCO0VBeEJBO0lBMEJRLGlCQUFpQjtJQTFCekI7TUE2QlksWUFBWTtNQUNaLFlBQVk7TUFDWixzQkFBc0I7SUEvQmxDO01Ba0NZLGNBQWM7TUFDZCxlQUFlO01BQ2Ysa0JBQWtCO01BQ2xCLGtCQUFrQixJQUNyQjs7QUFJVDtFQUNJLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2Ysa0JBQWtCOztBQUd0QjtFQUVRLGVBQWU7O0FBRnZCO0VBTVEsbUJBQW1CO0VBQ25CLGNBQWM7RUFDZCxXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGNBQWM7RUFDZCxrQkFBa0I7RUFYMUI7SUFjWSxtQkFBbUI7O0FBZC9CO0VBbUJRLGNBQStCO0VBQy9CLDhEQUF5RDtFQUN6RCxnQkFBZ0I7O0FBSXhCO0VBQ0ksa0JBQWtCO0VBRHRCO0lFeEZ5RCxnQ0Y0RmhCO0lFMUZtQiwrQkYwRm5CO0lFdkZ3QiwwQkZ1RnhCO0lBQ2pDLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIsWUFBWTtJQUNaLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsMkJBQTJCO0lBQzNCLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIseUJBQXlCO0lBYmpDO01BZ0JZLGFBQWE7SUFoQnpCO01Bb0JZLGtCQUFrQjtJQXBCOUI7TUF3QlksYUFBYTtNQUNiLFVBQVU7SUF6QnRCO01BNkJZLGtCQUFrQjtNQUNsQixTQUFTO01BQ1QsWUFBWTtNQUNaLGFBQWE7TUFoQ3pCO1FBbUNnQixrQkFBa0I7UUFDbEIsVUFBVTtRQUNWLFdBQVc7UUFDWCxjQUFjO1FBQ2QsY0FBYztRQUNkLG9DQUFrQztRQUNsQyxZQUFZO0VBekM1QjtJQStDUSxrQkFBa0I7SUEvQzFCO01BaURZLFlBQVk7O0FBS3hCO0VBT1ksZUFBZTs7QUFQM0I7RUFXWSx5QkFBeUI7O0FBWHJDO0VBZ0JRLGtCQUFrQiIsImZpbGUiOiJtYWluLjFmZTUxNmU5NDJlODI5N2VhZTk3LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiR0b3RhbC1jb2x1bW5zOiAxMjtcbiRjb2x1bW4td2lkdGg6ICA0ZW07XG4kZ3V0dGVyLXdpZHRoOiAgMWVtO1xuJGdyaWQtcGFkZGluZzogICRndXR0ZXItd2lkdGg7XG5cbi8qIGNvbXBhc3MgKi9cbkBpbXBvcnQgXCJ+Y29tcGFzcy1taXhpbnMvbGliL2NvbXBhc3MvcmVzZXRcIjtcbkBpbXBvcnQgXCJ+Y29tcGFzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzM1wiO1xuXG5ib2R5IHtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLmNvbnRhaW5lcntcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgJjphZnRlcntcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbi5sb2dvIHtcbiAgICBtYXJnaW46IDFlbSAwIDAgMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDEyMHB4O1xuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLnByaW1hcnkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiA0NDRweDtcbiAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2xvZ28ucG5nXCIpO1xuICAgIH1cbiAgICAuc2Vjb25kYXJ5IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDY1cHg7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOjQwZW0pIHtcbiAgICAubG9nbyB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuXG4gICAgICAgIC5wcmltYXJ5IHtcbiAgICAgICAgICAgIHdpZHRoOiAyMjJweDtcbiAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjIycHg7XG4gICAgICAgIH1cbiAgICAgICAgLnNlY29uZGFyeSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNDVweDtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxLjVlbSAwO1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZWV0dXBzIHtcbiAgICBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMjEyMTIxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZpcnN0IGEge1xuICAgICAgICBjb2xvcjogcmdiYSgxNzksIDI1NSwgMTUxLCAxLjApO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDAgIzAwMCwwcHggMCA1cHggcmdiYSgxNzksMjU1LDE1MSwuOCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgfVxufVxuXG4uY2hlY2tpbnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5jaGVja2luIHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygxNnB4LCAxNnB4KTtcbiAgICAgICAgYm9yZGVyOiA4cHggc29saWQgIzAwMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICAgIG1hcmdpbjogMCAxZW0gMWVtIDA7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xuXG4gICAgICAgIC5uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2YwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubG9zZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLndpbm5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQwMHB4O1xuXG4gICAgICAgICAgICAubmFtZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMzAwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgMC42KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tpbi1saW5rIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgICBhOmxpbmssIGE6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5yc3ZwcyB7XG4gICAgQGV4dGVuZCAuY2hlY2tpbnM7XG5cbiAgICAucnN2cCB7XG4gICAgICAgIEBleHRlbmQgLmNoZWNraW47XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLmNoZWNrZWRfaW4ge1xuICAgICAgICAgICAgYm9yZGVyOiA4cHggc29saWQgI0ExQzk5RDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YXAtdG8tY2hlY2tpbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICB9XG59XG4iLCIvLyBCYXNlZCBvbiBbRXJpYyBNZXllcidzIHJlc2V0IDIuMF0oaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rvb2xzL2Nzcy9yZXNldC9pbmRleC5odG1sKVxuLy8gR2xvYmFsIHJlc2V0IHJ1bGVzLlxuLy8gRm9yIG1vcmUgc3BlY2lmaWMgcmVzZXRzLCB1c2UgdGhlIHJlc2V0IG1peGlucyBwcm92aWRlZCBiZWxvd1xuQG1peGluIGdsb2JhbC1yZXNldCB7XG4gIGh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuICBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG4gIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbiAgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbiAgYiwgdSwgaSwgY2VudGVyLFxuICBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuICBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbiAgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG4gIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLCBcbiAgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBcbiAgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG4gIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gICAgQGluY2x1ZGUgcmVzZXQtYm94LW1vZGVsO1xuICAgIEBpbmNsdWRlIHJlc2V0LWZvbnQ7IH1cbiAgLy8gVW5saWtlIEVyaWMncyBvcmlnaW5hbCByZXNldCwgd2UgcmVzZXQgdGhlIGh0bWwgZWxlbWVudCB0byBiZSBjb21wYXRpYmxlXG4gIC8vIHdpdGggdGhlIHZlcnRpY2FsIHJoeXRobSBtaXhpbnMuXG4gIGh0bWwge1xuICAgIEBpbmNsdWRlIHJlc2V0LWJvZHk7IH1cbiAgb2wsIHVsIHtcbiAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlOyB9XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSByZXNldC10YWJsZTsgfVxuICBjYXB0aW9uLCB0aCwgdGQge1xuICAgIEBpbmNsdWRlIHJlc2V0LXRhYmxlLWNlbGw7IH1cbiAgcSwgYmxvY2txdW90ZSB7XG4gICAgQGluY2x1ZGUgcmVzZXQtcXVvdGF0aW9uOyB9XG4gIGEgaW1nIHtcbiAgICBAaW5jbHVkZSByZXNldC1pbWFnZS1hbmNob3ItYm9yZGVyOyB9XG4gIEBpbmNsdWRlIHJlc2V0LWh0bWw1OyB9XG5cbi8vIFJlc2V0IGFsbCBlbGVtZW50cyB3aXRoaW4gc29tZSBzZWxlY3RvciBzY29wZS4gVG8gcmVzZXQgdGhlIHNlbGVjdG9yIGl0c2VsZixcbi8vIG1peGluIHRoZSBhcHByb3ByaWF0ZSByZXNldCBtaXhpbiBmb3IgdGhhdCBlbGVtZW50IHR5cGUgYXMgd2VsbC4gVGhpcyBjb3VsZCBiZVxuLy8gdXNlZnVsIGlmIHlvdSB3YW50IHRvIHN0eWxlIGEgcGFydCBvZiB5b3VyIHBhZ2UgaW4gYSBkcmFtYXRpY2FsbHkgZGlmZmVyZW50IHdheS5cbkBtaXhpbiBuZXN0ZWQtcmVzZXQge1xuICBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbiAgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuICBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG4gIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXG4gIGIsIHUsIGksIGNlbnRlcixcbiAgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbiAgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG4gIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuICBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgXG4gIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgXG4gIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxuICB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc2V0LWJveC1tb2RlbDtcbiAgICBAaW5jbHVkZSByZXNldC1mb250OyB9XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSByZXNldC10YWJsZTsgfVxuICBjYXB0aW9uLCB0aCwgdGQge1xuICAgIEBpbmNsdWRlIHJlc2V0LXRhYmxlLWNlbGw7IH1cbiAgcSwgYmxvY2txdW90ZSB7XG4gICAgQGluY2x1ZGUgcmVzZXQtcXVvdGF0aW9uOyB9XG4gIGEgaW1nIHtcbiAgICBAaW5jbHVkZSByZXNldC1pbWFnZS1hbmNob3ItYm9yZGVyOyB9IH1cblxuLy8gUmVzZXQgdGhlIGJveCBtb2RlbCBtZWFzdXJlbWVudHMuXG5AbWl4aW4gcmVzZXQtYm94LW1vZGVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxuLy8gUmVzZXQgdGhlIGZvbnQgYW5kIHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiByZXNldC1mb250IHtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuLy8gUmVzZXRzIHRoZSBvdXRsaW5lIHdoZW4gZm9jdXMuXG4vLyBGb3IgYWNjZXNzaWJpbGl0eSB5b3UgbmVlZCB0byBhcHBseSBzb21lIHN0eWxpbmcgaW4gaXRzIHBsYWNlLlxuQG1peGluIHJlc2V0LWZvY3VzIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vLyBSZXNldCBhIGJvZHkgZWxlbWVudC5cbkBtaXhpbiByZXNldC1ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLy8gUmVzZXQgdGhlIGxpc3Qgc3R5bGUgb2YgYW4gZWxlbWVudC5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlIHtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4vLyBSZXNldCBhIHRhYmxlXG5AbWl4aW4gcmVzZXQtdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG4vLyBSZXNldCBhIHRhYmxlIGNlbGwgKGB0aGAsIGB0ZGApXG5AbWl4aW4gcmVzZXQtdGFibGUtY2VsbCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLy8gUmVzZXQgYSBxdW90YXRpb24gKGBxYCwgYGJsb2NrcXVvdGVgKVxuQG1peGluIHJlc2V0LXF1b3RhdGlvbiB7XG4gIHF1b3Rlczogbm9uZTtcbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7IFxuICAgIGNvbnRlbnQ6IG5vbmU7IH0gfVxuXG4vLyBSZXNldHMgdGhlIGJvcmRlci5cbkBtaXhpbiByZXNldC1pbWFnZS1hbmNob3ItYm9yZGVyIHtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi8vIFVucmVjb2duaXplZCBlbGVtZW50cyBhcmUgZGlzcGxheWVkIGlubGluZS5cbi8vIFRoaXMgcmVzZXQgcHJvdmlkZXMgYSBiYXNpYyByZXNldCBmb3IgYmxvY2sgaHRtbDUgZWxlbWVudHNcbi8vIHNvIHRoZXkgYXJlIHJlbmRlcmVkIGNvcnJlY3RseSBpbiBicm93c2VycyB0aGF0IGRvbid0IHJlY29nbml6ZSB0aGVtXG4vLyBhbmQgcmVzZXQgaW4gYnJvd3NlcnMgdGhhdCBoYXZlIGRlZmF1bHQgc3R5bGVzIGZvciB0aGVtLlxuQG1peGluIHJlc2V0LWh0bWw1IHtcbiAgI3tlbGVtZW50cy1vZi10eXBlKGh0bWw1LWJsb2NrKX0ge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLy8gUmVzZXRzIHRoZSBkaXNwbGF5IG9mIGlubGluZSBhbmQgYmxvY2sgZWxlbWVudHMgdG8gdGhlaXIgZGVmYXVsdCBkaXNwbGF5XG4vLyBhY2NvcmRpbmcgdG8gdGhlaXIgdGFnIHR5cGUuIEVsZW1lbnRzIHRoYXQgaGF2ZSBhIGRlZmF1bHQgZGlzcGxheSB0aGF0IHZhcmllcyBhY3Jvc3Ncbi8vIHZlcnNpb25zIG9mIGh0bWwgb3IgYnJvd3NlciBhcmUgbm90IGhhbmRsZWQgaGVyZSwgYnV0IHRoaXMgY292ZXJzIHRoZSA5MCUgdXNlIGNhc2UuXG4vLyBVc2FnZSBFeGFtcGxlOlxuLy9cbi8vICAgICAvLyBUdXJuIG9mZiB0aGUgZGlzcGxheSBmb3IgYm90aCBvZiB0aGVzZSBjbGFzc2VzXG4vLyAgICAgLnVucmVnaXN0ZXJlZC1vbmx5LCAucmVnaXN0ZXJlZC1vbmx5XG4vLyAgICAgICBkaXNwbGF5OiBub25lXG4vLyAgICAgLy8gTm93IHR1cm4gb25seSBvbmUgb2YgdGhlbSBiYWNrIG9uIGRlcGVuZGluZyBvbiBzb21lIG90aGVyIGNvbnRleHQuXG4vLyAgICAgYm9keS5yZWdpc3RlcmVkXG4vLyAgICAgICArcmVzZXQtZGlzcGxheShcIi5yZWdpc3RlcmVkLW9ubHlcIilcbi8vICAgICBib2R5LnVucmVnaXN0ZXJlZFxuLy8gICAgICAgK3Jlc2V0LWRpc3BsYXkoXCIudW5yZWdpc3RlcmVkLW9ubHlcIilcbkBtaXhpbiByZXNldC1kaXNwbGF5KCRzZWxlY3RvcjogXCJcIiwgJGltcG9ydGFudDogZmFsc2UpIHtcbiAgI3thcHBlbmQtc2VsZWN0b3IoZWxlbWVudHMtb2YtdHlwZShcImlubGluZVwiKSwgJHNlbGVjdG9yKX0ge1xuICAgIEBpZiAkaW1wb3J0YW50IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogaW5saW5lOyB9IH1cbiAgI3thcHBlbmQtc2VsZWN0b3IoZWxlbWVudHMtb2YtdHlwZShcImJsb2NrXCIpLCAkc2VsZWN0b3IpfSB7XG4gICAgQGlmICRpbXBvcnRhbnQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH0gfVxuIiwiQGltcG9ydCBcIi4uL3N1cHBvcnRcIjtcblxuLy8gVGhpcyBtaXhpbiBwcm92aWRlcyBiYXNpYyBzdXBwb3J0IGZvciBDU1MzIHByb3BlcnRpZXMgYW5kXG4vLyB0aGVpciBjb3JyZXNwb25kaW5nIGV4cGVyaW1lbnRhbCBDU1MyIHByb3BlcnRpZXMgd2hlblxuLy8gdGhlIGltcGxlbWVudGF0aW9ucyBhcmUgaWRlbnRpY2FsIGV4Y2VwdCBmb3IgdGhlIHByb3BlcnR5XG4vLyBwcmVmaXguXG5AbWl4aW4gZXhwZXJpbWVudGFsKCRwcm9wZXJ0eSwgJHZhbHVlLFxuICAkbW96ICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEsXG4gICR3ZWJraXQgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0LFxuICAkbyAgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhLFxuICAkbXMgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCxcbiAgJGtodG1sICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCxcbiAgJG9mZmljaWFsIDogdHJ1ZVxuKSB7XG4gIEBpZiAkd2Via2l0ICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgeyAtd2Via2l0LSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJGtodG1sICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwgICAgIHsgIC1raHRtbC0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRtb3ogICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICB7ICAgIC1tb3otI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAkbXMgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQgeyAgICAgLW1zLSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJG8gICAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgICAgICAtby0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRvZmZpY2lhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG59XG5cbi8vIFNhbWUgYXMgZXhwZXJpbWVudGFsKCksIGJ1dCBmb3IgY2FzZXMgd2hlbiB0aGUgcHJvcGVydHkgaXMgdGhlIHNhbWUgYW5kIHRoZSB2YWx1ZSBpcyB2ZW5kb3JpemVkXG5AbWl4aW4gZXhwZXJpbWVudGFsLXZhbHVlKCRwcm9wZXJ0eSwgJHZhbHVlLFxuICAkbW96ICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEsXG4gICR3ZWJraXQgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0LFxuICAkbyAgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhLFxuICAkbXMgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCxcbiAgJGtodG1sICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCxcbiAgJG9mZmljaWFsIDogdHJ1ZVxuKSB7XG4gIEBpZiAkd2Via2l0ICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgeyAjeyRwcm9wZXJ0eX0gOiAtd2Via2l0LSN7JHZhbHVlfTsgfVxuICBAaWYgJGtodG1sICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwgICAgIHsgI3skcHJvcGVydHl9IDogIC1raHRtbC0jeyR2YWx1ZX07IH1cbiAgQGlmICRtb3ogICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICB7ICN7JHByb3BlcnR5fSA6ICAgIC1tb3otI3skdmFsdWV9OyB9XG4gIEBpZiAkbXMgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQgeyAjeyRwcm9wZXJ0eX0gOiAgICAgLW1zLSN7JHZhbHVlfTsgfVxuICBAaWYgJG8gICAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgI3skcHJvcGVydHl9IDogICAgICAtby0jeyR2YWx1ZX07IH1cbiAgQGlmICRvZmZpY2lhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICN7JHByb3BlcnR5fSA6ICAgICAgICAgI3skdmFsdWV9OyB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9*/ \ No newline at end of file diff --git a/web/assets/manifest.json b/web/assets/manifest.json new file mode 100644 index 0000000..1a2f054 --- /dev/null +++ b/web/assets/manifest.json @@ -0,0 +1,6 @@ +{ + "assets/main.css": "/assets/main.1fe516e942e8297eae97.css", + "assets/raffler.js": "/assets/raffler.7844e51a893abf22f9fc.js", + "assets/images/avatar.png": "/assets/images/avatar.3d50e83f.png", + "assets/images/logo.png": "/assets/images/logo.de0bea12.png" +} \ No newline at end of file diff --git a/web/assets/raffler.7844e51a893abf22f9fc.js b/web/assets/raffler.7844e51a893abf22f9fc.js new file mode 100644 index 0000000..20280ab --- /dev/null +++ b/web/assets/raffler.7844e51a893abf22f9fc.js @@ -0,0 +1,244 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/assets/"; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./source/js/raffler.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./source/js/raffler.js": +/*!******************************!*\ + !*** ./source/js/raffler.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/** + * Main object. + */ +var Raffler = { + /** + * The delay between highlighting each checkin. + */ + highlightDelay: 0, + + /** + * The current hightlight cycle. + */ + currentCycle: 0, + + /** + * Array of truely random numbers. This is populated + * on page load. We select the winners from this array. + */ + winners: [], + + /** + * Current state we are in. One of "start", "raffling", "winner" + */ + state: 'start', + + /** + * Initialize + */ + init: function init(winners) { + Raffler.winners = winners; + $(document).on('keydown', Raffler.onKeyDown); + }, + + /** + * On key down handler. + */ + onKeyDown: function onKeyDown(e) { + // We only handle the space (32) and page down (34) keys. Page down is enabled because + // presentation remotes emit page down on the "next" button + if (e.keyCode != 32 && e.keyCode != 34) { + return; + } // If we are in start state, start the raffler + + + if (Raffler.state == 'start') { + Raffler.raffle(); + } // If we are raffling, do nothing. + + + if (Raffler.state == 'raffling') { + return; + } // If we are showing the winner, reset the state + + + if (Raffler.state == 'winner') { + Raffler.resetRaffler(); + } + }, + + /** + * Raffle. + */ + raffle: function raffle() { + if (Raffler.winners.length <= 0) { + alert("We have gone over the initial draft, please refresh page."); + window.history.go(0); + return; + } // Hide checkin link + + + $('.checkin-link').hide(); + Raffler.state = 'raffling'; + Raffler.highlightRandomCheckin(); + }, + + /** + * Present a winner. + */ + showWinner: function showWinner() { + // Change state + Raffler.state = 'winner'; // Hide all checkins + + $('.checkin').addClass('loser', 1000); // Show winner + + var winner = $('.checkin').eq(Raffler.winners.pop()); + winner.switchClass('loser', 'winner', 200); + }, + + /** + * Reset raffler + */ + resetRaffler: function resetRaffler() { + // Reset cycles and delay + Raffler.currentCycle = 0; + Raffler.highlightDelay = 0; // Reset styles + + $('.checkin').removeClass('loser'); + $('.checkin').removeClass('winner'); // Reset state + + Raffler.state = 'start'; + }, + + /** + * Highlight random checkin. + */ + highlightRandomCheckin: function highlightRandomCheckin() { + // Abort if we have reached 50 cycles + if (45 <= Raffler.currentCycle) { + Raffler.showWinner(); + return; + } // Increase the current highlight cycle + + + Raffler.currentCycle++; // Adjust the highlight delay + + Raffler.highlightDelay = Math.pow(1.14, Raffler.currentCycle); // Get random person to highlight + + checkin = Raffler.getRandomCheckin(); // Highlight, delay, unhighlight + + checkin.addClass('selected', Raffler.highlightDelay, Raffler.unhighlightCurrentCheckin); + }, + + /** + * Unhighlight current checkin + */ + unhighlightCurrentCheckin: function unhighlightCurrentCheckin() { + // Unhighlight this checkin and recurse back to highlighting another + // random checkin + $(this).removeClass('selected', Raffler.highlightDelay, Raffler.highlightRandomCheckin); + }, + + /** + * Get random checkin. + */ + getRandomCheckin: function getRandomCheckin() { + var random = Math.floor(Math.random() * $('.checkin').size()); + return $('.checkin').eq(random); + } +}; +var $checkins = $('.checkins[data-winners]'); + +if ($checkins.length > 0) { + Raffler.init($checkins.data('winners').split(',')); +} + +/***/ }) + +/******/ }); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vc291cmNlL2pzL3JhZmZsZXIuanMiXSwibmFtZXMiOlsiUmFmZmxlciIsImhpZ2hsaWdodERlbGF5IiwiY3VycmVudEN5Y2xlIiwid2lubmVycyIsInN0YXRlIiwiaW5pdCIsIiQiLCJkb2N1bWVudCIsIm9uIiwib25LZXlEb3duIiwiZSIsImtleUNvZGUiLCJyYWZmbGUiLCJyZXNldFJhZmZsZXIiLCJsZW5ndGgiLCJhbGVydCIsIndpbmRvdyIsImhpc3RvcnkiLCJnbyIsImhpZGUiLCJoaWdobGlnaHRSYW5kb21DaGVja2luIiwic2hvd1dpbm5lciIsImFkZENsYXNzIiwid2lubmVyIiwiZXEiLCJwb3AiLCJzd2l0Y2hDbGFzcyIsInJlbW92ZUNsYXNzIiwiTWF0aCIsInBvdyIsImNoZWNraW4iLCJnZXRSYW5kb21DaGVja2luIiwidW5oaWdobGlnaHRDdXJyZW50Q2hlY2tpbiIsInJhbmRvbSIsImZsb29yIiwic2l6ZSIsIiRjaGVja2lucyIsImRhdGEiLCJzcGxpdCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0RBQTBDLGdDQUFnQztBQUMxRTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdFQUF3RCxrQkFBa0I7QUFDMUU7QUFDQSx5REFBaUQsY0FBYztBQUMvRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQXlDLGlDQUFpQztBQUMxRSx3SEFBZ0gsbUJBQW1CLEVBQUU7QUFDckk7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBMkIsMEJBQTBCLEVBQUU7QUFDdkQseUNBQWlDLGVBQWU7QUFDaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQXNELCtEQUErRDs7QUFFckg7QUFDQTs7O0FBR0E7QUFDQTs7Ozs7Ozs7Ozs7O0FDbEZBOzs7QUFHQSxJQUFJQSxPQUFPLEdBQUc7QUFDVjs7O0FBR0FDLGdCQUFjLEVBQUUsQ0FKTjs7QUFNVjs7O0FBR0FDLGNBQVksRUFBRSxDQVRKOztBQVdWOzs7O0FBSUFDLFNBQU8sRUFBRSxFQWZDOztBQWlCVjs7O0FBR0FDLE9BQUssRUFBRSxPQXBCRzs7QUFzQlY7OztBQUdBQyxNQUFJLEVBQUUsY0FBU0YsT0FBVCxFQUFrQjtBQUNwQkgsV0FBTyxDQUFDRyxPQUFSLEdBQWtCQSxPQUFsQjtBQUNBRyxLQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsU0FBZixFQUEwQlIsT0FBTyxDQUFDUyxTQUFsQztBQUNILEdBNUJTOztBQThCVjs7O0FBR0FBLFdBQVMsRUFBRSxtQkFBU0MsQ0FBVCxFQUFZO0FBQ25CO0FBQ0E7QUFDQSxRQUFJQSxDQUFDLENBQUNDLE9BQUYsSUFBYSxFQUFiLElBQW1CRCxDQUFDLENBQUNDLE9BQUYsSUFBYSxFQUFwQyxFQUF3QztBQUNwQztBQUNILEtBTGtCLENBT25COzs7QUFDQSxRQUFJWCxPQUFPLENBQUNJLEtBQVIsSUFBaUIsT0FBckIsRUFBOEI7QUFDMUJKLGFBQU8sQ0FBQ1ksTUFBUjtBQUNILEtBVmtCLENBWW5COzs7QUFDQSxRQUFJWixPQUFPLENBQUNJLEtBQVIsSUFBaUIsVUFBckIsRUFBaUM7QUFDN0I7QUFDSCxLQWZrQixDQWlCbkI7OztBQUNBLFFBQUlKLE9BQU8sQ0FBQ0ksS0FBUixJQUFpQixRQUFyQixFQUErQjtBQUMzQkosYUFBTyxDQUFDYSxZQUFSO0FBQ0g7QUFDSixHQXREUzs7QUF3RFY7OztBQUdBRCxRQUFNLEVBQUUsa0JBQVk7QUFFaEIsUUFBSVosT0FBTyxDQUFDRyxPQUFSLENBQWdCVyxNQUFoQixJQUEwQixDQUE5QixFQUFrQztBQUM5QkMsV0FBSyxDQUFDLDJEQUFELENBQUw7QUFDQUMsWUFBTSxDQUFDQyxPQUFQLENBQWVDLEVBQWYsQ0FBa0IsQ0FBbEI7QUFDQTtBQUNILEtBTmUsQ0FRaEI7OztBQUNBWixLQUFDLENBQUMsZUFBRCxDQUFELENBQW1CYSxJQUFuQjtBQUVBbkIsV0FBTyxDQUFDSSxLQUFSLEdBQWdCLFVBQWhCO0FBQ0FKLFdBQU8sQ0FBQ29CLHNCQUFSO0FBQ0gsR0F4RVM7O0FBMEVWOzs7QUFHQUMsWUFBVSxFQUFFLHNCQUFXO0FBQ25CO0FBQ0FyQixXQUFPLENBQUNJLEtBQVIsR0FBZ0IsUUFBaEIsQ0FGbUIsQ0FJbkI7O0FBQ0FFLEtBQUMsQ0FBQyxVQUFELENBQUQsQ0FBY2dCLFFBQWQsQ0FBdUIsT0FBdkIsRUFBZ0MsSUFBaEMsRUFMbUIsQ0FRbkI7O0FBQ0EsUUFBSUMsTUFBTSxHQUFHakIsQ0FBQyxDQUFDLFVBQUQsQ0FBRCxDQUFja0IsRUFBZCxDQUFpQnhCLE9BQU8sQ0FBQ0csT0FBUixDQUFnQnNCLEdBQWhCLEVBQWpCLENBQWI7QUFDQUYsVUFBTSxDQUFDRyxXQUFQLENBQW1CLE9BQW5CLEVBQTRCLFFBQTVCLEVBQXNDLEdBQXRDO0FBQ0gsR0F4RlM7O0FBMEZWOzs7QUFHQWIsY0FBWSxFQUFFLHdCQUFXO0FBQ3JCO0FBQ0FiLFdBQU8sQ0FBQ0UsWUFBUixHQUF1QixDQUF2QjtBQUNBRixXQUFPLENBQUNDLGNBQVIsR0FBeUIsQ0FBekIsQ0FIcUIsQ0FLckI7O0FBQ0FLLEtBQUMsQ0FBQyxVQUFELENBQUQsQ0FBY3FCLFdBQWQsQ0FBMEIsT0FBMUI7QUFDQXJCLEtBQUMsQ0FBQyxVQUFELENBQUQsQ0FBY3FCLFdBQWQsQ0FBMEIsUUFBMUIsRUFQcUIsQ0FTckI7O0FBQ0EzQixXQUFPLENBQUNJLEtBQVIsR0FBZ0IsT0FBaEI7QUFDSCxHQXhHUzs7QUEwR1Y7OztBQUdBZ0Isd0JBQXNCLEVBQUUsa0NBQVc7QUFDL0I7QUFDQSxRQUFJLE1BQU1wQixPQUFPLENBQUNFLFlBQWxCLEVBQWdDO0FBQzVCRixhQUFPLENBQUNxQixVQUFSO0FBQ0E7QUFDSCxLQUw4QixDQU8vQjs7O0FBQ0FyQixXQUFPLENBQUNFLFlBQVIsR0FSK0IsQ0FVL0I7O0FBQ0FGLFdBQU8sQ0FBQ0MsY0FBUixHQUF5QjJCLElBQUksQ0FBQ0MsR0FBTCxDQUFTLElBQVQsRUFBZTdCLE9BQU8sQ0FBQ0UsWUFBdkIsQ0FBekIsQ0FYK0IsQ0FhL0I7O0FBQ0E0QixXQUFPLEdBQUc5QixPQUFPLENBQUMrQixnQkFBUixFQUFWLENBZCtCLENBZ0IvQjs7QUFDQUQsV0FBTyxDQUFDUixRQUFSLENBQWlCLFVBQWpCLEVBQTZCdEIsT0FBTyxDQUFDQyxjQUFyQyxFQUFxREQsT0FBTyxDQUFDZ0MseUJBQTdEO0FBQ0gsR0EvSFM7O0FBaUlWOzs7QUFHQUEsMkJBQXlCLEVBQUUscUNBQVc7QUFDbEM7QUFDQTtBQUNBMUIsS0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRcUIsV0FBUixDQUFvQixVQUFwQixFQUFnQzNCLE9BQU8sQ0FBQ0MsY0FBeEMsRUFBd0RELE9BQU8sQ0FBQ29CLHNCQUFoRTtBQUNILEdBeElTOztBQTBJVjs7O0FBR0FXLGtCQUFnQixFQUFFLDRCQUFXO0FBQ3pCLFFBQUlFLE1BQU0sR0FBR0wsSUFBSSxDQUFDTSxLQUFMLENBQVdOLElBQUksQ0FBQ0ssTUFBTCxLQUFnQjNCLENBQUMsQ0FBQyxVQUFELENBQUQsQ0FBYzZCLElBQWQsRUFBM0IsQ0FBYjtBQUNBLFdBQU83QixDQUFDLENBQUMsVUFBRCxDQUFELENBQWNrQixFQUFkLENBQWlCUyxNQUFqQixDQUFQO0FBQ0g7QUFoSlMsQ0FBZDtBQW1KQSxJQUFJRyxTQUFTLEdBQUc5QixDQUFDLENBQUMseUJBQUQsQ0FBakI7O0FBQ0EsSUFBSThCLFNBQVMsQ0FBQ3RCLE1BQVYsR0FBbUIsQ0FBdkIsRUFBMEI7QUFDdEJkLFNBQU8sQ0FBQ0ssSUFBUixDQUFhK0IsU0FBUyxDQUFDQyxJQUFWLENBQWUsU0FBZixFQUEwQkMsS0FBMUIsQ0FBZ0MsR0FBaEMsQ0FBYjtBQUNILEMiLCJmaWxlIjoicmFmZmxlci43ODQ0ZTUxYTg5M2FiZjIyZjlmYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiL2Fzc2V0cy9cIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IFwiLi9zb3VyY2UvanMvcmFmZmxlci5qc1wiKTtcbiIsIi8qKlxuICogTWFpbiBvYmplY3QuXG4gKi9cbnZhciBSYWZmbGVyID0ge1xuICAgIC8qKlxuICAgICAqIFRoZSBkZWxheSBiZXR3ZWVuIGhpZ2hsaWdodGluZyBlYWNoIGNoZWNraW4uXG4gICAgICovXG4gICAgaGlnaGxpZ2h0RGVsYXk6IDAsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCBoaWdodGxpZ2h0IGN5Y2xlLlxuICAgICAqL1xuICAgIGN1cnJlbnRDeWNsZTogMCxcblxuICAgIC8qKlxuICAgICAqIEFycmF5IG9mIHRydWVseSByYW5kb20gbnVtYmVycy4gVGhpcyBpcyBwb3B1bGF0ZWRcbiAgICAgKiBvbiBwYWdlIGxvYWQuIFdlIHNlbGVjdCB0aGUgd2lubmVycyBmcm9tIHRoaXMgYXJyYXkuXG4gICAgICovXG4gICAgd2lubmVyczogW10sXG5cbiAgICAvKipcbiAgICAgKiBDdXJyZW50IHN0YXRlIHdlIGFyZSBpbi4gT25lIG9mIFwic3RhcnRcIiwgXCJyYWZmbGluZ1wiLCBcIndpbm5lclwiXG4gICAgICovXG4gICAgc3RhdGU6ICdzdGFydCcsXG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplXG4gICAgICovXG4gICAgaW5pdDogZnVuY3Rpb24od2lubmVycykge1xuICAgICAgICBSYWZmbGVyLndpbm5lcnMgPSB3aW5uZXJzO1xuICAgICAgICAkKGRvY3VtZW50KS5vbigna2V5ZG93bicsIFJhZmZsZXIub25LZXlEb3duKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogT24ga2V5IGRvd24gaGFuZGxlci5cbiAgICAgKi9cbiAgICBvbktleURvd246IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgLy8gV2Ugb25seSBoYW5kbGUgdGhlIHNwYWNlICgzMikgYW5kIHBhZ2UgZG93biAoMzQpIGtleXMuIFBhZ2UgZG93biBpcyBlbmFibGVkIGJlY2F1c2VcbiAgICAgICAgLy8gcHJlc2VudGF0aW9uIHJlbW90ZXMgZW1pdCBwYWdlIGRvd24gb24gdGhlIFwibmV4dFwiIGJ1dHRvblxuICAgICAgICBpZiAoZS5rZXlDb2RlICE9IDMyICYmIGUua2V5Q29kZSAhPSAzNCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgd2UgYXJlIGluIHN0YXJ0IHN0YXRlLCBzdGFydCB0aGUgcmFmZmxlclxuICAgICAgICBpZiAoUmFmZmxlci5zdGF0ZSA9PSAnc3RhcnQnKSB7XG4gICAgICAgICAgICBSYWZmbGVyLnJhZmZsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgd2UgYXJlIHJhZmZsaW5nLCBkbyBub3RoaW5nLlxuICAgICAgICBpZiAoUmFmZmxlci5zdGF0ZSA9PSAncmFmZmxpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB3ZSBhcmUgc2hvd2luZyB0aGUgd2lubmVyLCByZXNldCB0aGUgc3RhdGVcbiAgICAgICAgaWYgKFJhZmZsZXIuc3RhdGUgPT0gJ3dpbm5lcicpIHtcbiAgICAgICAgICAgIFJhZmZsZXIucmVzZXRSYWZmbGVyKCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmFmZmxlLlxuICAgICAqL1xuICAgIHJhZmZsZTogZnVuY3Rpb24gKCkge1xuXG4gICAgICAgIGlmIChSYWZmbGVyLndpbm5lcnMubGVuZ3RoIDw9IDAgKSB7XG4gICAgICAgICAgICBhbGVydChcIldlIGhhdmUgZ29uZSBvdmVyIHRoZSBpbml0aWFsIGRyYWZ0LCBwbGVhc2UgcmVmcmVzaCBwYWdlLlwiKTtcbiAgICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LmdvKDApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGlkZSBjaGVja2luIGxpbmtcbiAgICAgICAgJCgnLmNoZWNraW4tbGluaycpLmhpZGUoKTtcblxuICAgICAgICBSYWZmbGVyLnN0YXRlID0gJ3JhZmZsaW5nJztcbiAgICAgICAgUmFmZmxlci5oaWdobGlnaHRSYW5kb21DaGVja2luKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFByZXNlbnQgYSB3aW5uZXIuXG4gICAgICovXG4gICAgc2hvd1dpbm5lcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIC8vIENoYW5nZSBzdGF0ZVxuICAgICAgICBSYWZmbGVyLnN0YXRlID0gJ3dpbm5lcic7XG5cbiAgICAgICAgLy8gSGlkZSBhbGwgY2hlY2tpbnNcbiAgICAgICAgJCgnLmNoZWNraW4nKS5hZGRDbGFzcygnbG9zZXInLCAxMDAwKTtcblxuXG4gICAgICAgIC8vIFNob3cgd2lubmVyXG4gICAgICAgIHZhciB3aW5uZXIgPSAkKCcuY2hlY2tpbicpLmVxKFJhZmZsZXIud2lubmVycy5wb3AoKSk7XG4gICAgICAgIHdpbm5lci5zd2l0Y2hDbGFzcygnbG9zZXInLCAnd2lubmVyJywgMjAwKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmVzZXQgcmFmZmxlclxuICAgICAqL1xuICAgIHJlc2V0UmFmZmxlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIC8vIFJlc2V0IGN5Y2xlcyBhbmQgZGVsYXlcbiAgICAgICAgUmFmZmxlci5jdXJyZW50Q3ljbGUgPSAwO1xuICAgICAgICBSYWZmbGVyLmhpZ2hsaWdodERlbGF5ID0gMDtcblxuICAgICAgICAvLyBSZXNldCBzdHlsZXNcbiAgICAgICAgJCgnLmNoZWNraW4nKS5yZW1vdmVDbGFzcygnbG9zZXInKTtcbiAgICAgICAgJCgnLmNoZWNraW4nKS5yZW1vdmVDbGFzcygnd2lubmVyJyk7XG5cbiAgICAgICAgLy8gUmVzZXQgc3RhdGVcbiAgICAgICAgUmFmZmxlci5zdGF0ZSA9ICdzdGFydCc7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodCByYW5kb20gY2hlY2tpbi5cbiAgICAgKi9cbiAgICBoaWdobGlnaHRSYW5kb21DaGVja2luOiBmdW5jdGlvbigpIHtcbiAgICAgICAgLy8gQWJvcnQgaWYgd2UgaGF2ZSByZWFjaGVkIDUwIGN5Y2xlc1xuICAgICAgICBpZiAoNDUgPD0gUmFmZmxlci5jdXJyZW50Q3ljbGUpIHtcbiAgICAgICAgICAgIFJhZmZsZXIuc2hvd1dpbm5lcigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5jcmVhc2UgdGhlIGN1cnJlbnQgaGlnaGxpZ2h0IGN5Y2xlXG4gICAgICAgIFJhZmZsZXIuY3VycmVudEN5Y2xlKys7XG5cbiAgICAgICAgLy8gQWRqdXN0IHRoZSBoaWdobGlnaHQgZGVsYXlcbiAgICAgICAgUmFmZmxlci5oaWdobGlnaHREZWxheSA9IE1hdGgucG93KDEuMTQsIFJhZmZsZXIuY3VycmVudEN5Y2xlKTtcblxuICAgICAgICAvLyBHZXQgcmFuZG9tIHBlcnNvbiB0byBoaWdobGlnaHRcbiAgICAgICAgY2hlY2tpbiA9IFJhZmZsZXIuZ2V0UmFuZG9tQ2hlY2tpbigpO1xuXG4gICAgICAgIC8vIEhpZ2hsaWdodCwgZGVsYXksIHVuaGlnaGxpZ2h0XG4gICAgICAgIGNoZWNraW4uYWRkQ2xhc3MoJ3NlbGVjdGVkJywgUmFmZmxlci5oaWdobGlnaHREZWxheSwgUmFmZmxlci51bmhpZ2hsaWdodEN1cnJlbnRDaGVja2luKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVW5oaWdobGlnaHQgY3VycmVudCBjaGVja2luXG4gICAgICovXG4gICAgdW5oaWdobGlnaHRDdXJyZW50Q2hlY2tpbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIC8vIFVuaGlnaGxpZ2h0IHRoaXMgY2hlY2tpbiBhbmQgcmVjdXJzZSBiYWNrIHRvIGhpZ2hsaWdodGluZyBhbm90aGVyXG4gICAgICAgIC8vIHJhbmRvbSBjaGVja2luXG4gICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkJywgUmFmZmxlci5oaWdobGlnaHREZWxheSwgUmFmZmxlci5oaWdobGlnaHRSYW5kb21DaGVja2luKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogR2V0IHJhbmRvbSBjaGVja2luLlxuICAgICAqL1xuICAgIGdldFJhbmRvbUNoZWNraW46IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcmFuZG9tID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogJCgnLmNoZWNraW4nKS5zaXplKCkpO1xuICAgICAgICByZXR1cm4oJCgnLmNoZWNraW4nKS5lcShyYW5kb20pKTtcbiAgICB9XG59O1xuXG5sZXQgJGNoZWNraW5zID0gJCgnLmNoZWNraW5zW2RhdGEtd2lubmVyc10nKTtcbmlmICgkY2hlY2tpbnMubGVuZ3RoID4gMCkge1xuICAgIFJhZmZsZXIuaW5pdCgkY2hlY2tpbnMuZGF0YSgnd2lubmVycycpLnNwbGl0KCcsJykpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/web/index.php b/web/index.php index 2f21359..e30f90c 100644 --- a/web/index.php +++ b/web/index.php @@ -1,27 +1,27 @@ run(); +$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); +$request = Request::createFromGlobals(); +$response = $kernel->handle($request); +$response->send(); +$kernel->terminate($request, $response); diff --git a/web/index_dev.php b/web/index_dev.php deleted file mode 100644 index 0ff2392..0000000 --- a/web/index_dev.php +++ /dev/null @@ -1,20 +0,0 @@ -run(); diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..40cc990 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,26 @@ +var Encore = require('@symfony/webpack-encore'); + +Encore + .disableSingleRuntimeChunk() + .setOutputPath('web/assets/') + .setPublicPath('/assets') + + .addStyleEntry('main', './source/scss/main.scss') + .addEntry('raffler', './source/js/raffler.js') + + .copyFiles({ + from: './source/images', + to: 'images/[path][name].[hash:8].[ext]' + }) + + .enableSassLoader() + .enableSourceMaps(!Encore.isProduction()) + .cleanupOutputBeforeBuild() + .enableVersioning() + .configureFilenames({ + js: '[name].[contenthash].js', + css: '[name].[contenthash].css' + }) +; + +module.exports = Encore.getWebpackConfig();